これが私の質問です:
大きなクラス (HugeClass) があり、それをいくつかの小さなクラス (LittleClass1、LittleClass2、...) に分割したいと考えていました。委任について聞いたことがあります。良さそうですが、私の場合はうまくいかないと思います。実際、私の小さなクラスには、HugeClass のいくつかの属性が必要です。
public class HugeClass
{
// Attributes
private Object object1;
private Object object2;
private Object object3;
...
private Object objectN;
// Delegation 1
private LittleClass1 little1 = new LittleClass1 ();
// Function delegated in the LittleClass1
public void delegated1 ()
{
little1.delegated1 ();
}
}
Delegation クラスの例を次に示します。
public class LittleClass1
{
public LittleClass1 ()
{
}
public void delegated1 ()
{
// Here, I need object1, object3, and more to work !
}
}
delegated1 関数が必要とする属性の数が多くなる可能性があります。そのため、LittleClass1 のコンストラクターを使用するのはあまり便利ではないと思います。
また、LittleClass1 は HugeClass の 1 つのメソッドのみをオーバーライドするため、LittleClass1 が HugeClass を拡張する必要はないと思います。
解決策のアイデアはありますか? 別のパターンを使用していますか?
ありがとう !
アップデート
委任された関数には、インスタンス変数だけでなく、インスタンス関数も必要になる場合があります。
public class LittleClass2
{
public LittleClass2 ()
{
}
public void delegated2 ()
{
// I need object2 and delegated1 to work !
}
}
コンストラクターに HugeClass を指定すると、この問題が解決する場合があります。しかし、これは良い解決策ですか?