はい、これは標準的な方法です。 は共通(インスタンスメソッドではstatic
で一般的です)ではありませんが、完全に標準です。
Foo
にあるコードはほとんど無関係です:コードは、何らかの理由でthis
以外のFoo
インスタンスを必要とする場合、それはインスタンスを作成し、それを使用するために完全に正常です。
それは本当にすべてのより多くの奇妙な別のクラスの2つのインスタンスを作成する方法に比べてではありません。
おそらく
class Foo {
void method() {
Bar b1 = new Bar();
Bar b2 = new Bar();
// ...
}
}
、両方Bar
のインスタンスを必要とmethod
。同様に、doSomething
は、明らかにthis
以外のFoo
を必要とする。
あなたが特に見る1つの場所は、流暢なインターフェイスを備えた不変オブジェクトです。ほとんどのメソッドは、一部のアスペクトを変更してオブジェクトのインスタンスを返します。
public class Thingy {
private int a;
private int b;
public Thingy(a, b) {
this.a = a;
this.b = b;
}
public Thingy withA(int newA) {
return new Thingy(newA, this.b);
}
public Thingy withB(int newB) {
return new Thingy(this.a, newB);
}
public int getA() {
return this.a;
}
public int getB() {
return this.b;
}
// ...
}
通常withX
方法はそれよりももっと面白いですが、あなたはアイデアを得る... 5tingr4yが指摘するようにString
が、この例です:toUpperCase
、substring
、...
私見それはない、と(メソッドが静的でない限り)非常にまれです。 –