これは、私がGoogleで詳しく知ることができなかったレガシーコードの別のデザインパターンです。この場合、子クラスは、その抽象親を拡張したが、その後、右周りに回転し、親の静的インスタンスを宣言:子クラスが親クラスの静的インスタンスメンバーを宣言するのはいつ、そしてなぜですか?
public abstract class MessageBase {
protected DAOFactory factory;
// method declarations
}
public class EDWMessage extends MessageBase {
private static MessageBase instance;
public static MessageBase getInstance(Properties properties) {
if (instance == null) {
instance = new EDWMessageTransaction(properties, null);
}
return instance;
}
//more code
}
私はそれがある場合(このデザインパターンを駆動だろうか理解していないが既知のパターン)。これは、親の各メンバ変数を静的なものとして宣言するのを避けるための一種の便利なパターンですか?あるいは、複数の子クラスがそれぞれ親のインスタンスを1つ持つようにすることを意味します。しかし、そうであれば、なぜ単純な構成以上に継承を過剰に使用するのでしょうか?
コードの残りの部分は、なぜこのように行われるのかを示すものではありません。どんな考えやアイデアも高く評価されます。ありがとう!
P.S.私はどのように対処するのか分からないこのレガシーコードで、面白い多くの部分を実行しているようです。designpatternsすでに私を助けてくれた皆様に感謝します。
編集:コードサンプルを展開します。実際にこのコードを使用する場所を発見すると、もう一度編集します。はい、ドキュメントはありません。
インスタンス変数はどのように使用されますか? – Ralph