それほど大きな問題ではありませんが、Java コンストラクターとメソッドがどのように使用されているかについて考えさせられる問題があります。
最終的に宣言する半径を表す定数があり、それを公開して誰もが見ることができるようにします。絶対に半径を変更しないのに、コードに getRadius() メソッドを散らかしたくありません。
半径を割り当てる前に特定の基準を適用したいので、コンストラクター内で定数を初期化したいのですが、特定の条件を満たす必要があります。ただし、これらの条件はある程度のスペースを占有するため、コンストラクターをよりクリーンにするために、それらを他のメソッドに入れたいと思います。
全体は最初はこのようになります
public MyProblematicClass {
public final int radius;
public MyProblematicClass(... variables ...) {
if(... long criteria ...) {
radius = n;
}
}
}
そして、私はそれが好きです
public MyProblematicClass {
public final int radius;
public MyProblematicClass(... variables ...) {
this.setRadiuswithCriteria(criteria);
}
private void setRadiuswithCriteria(criteria crit) {
if(... crit ...) {
radius = n;
}
このメソッドを他の目的に使用できる可能性があることを理解しています。それが「空白のフィールド RADIUS が初期化されていない可能性がある」という理由です。きれいにするために、コンストラクターで使用されます。