这是一种遗留代码中的另一种设计模式,我在谷歌上找不到太多相关信息。在这种情况下,子类继承其抽象父类,但紧接着又声明了一个父类的静态实例。
我不确定是什么推动了这个设计模式(如果它是一个已知的模式)。这是一种方便的模式,避免将父类每个成员变量声明为静态变量吗?还是允许多个子类每个拥有一个父类实例。但如果是这样,为什么要过度使用继承而不是普通的组合呢?
代码的其余部分没有任何迹象表明为什么要以这种方式完成。任何想法或建议都将不胜感激。谢谢!
附言:我似乎在遇到很多有趣的设计模式在这个老旧的代码中,我不知道如何处理。感谢所有帮助过我的人。
编辑:扩展代码示例。将根据我发现使用此代码的某些地方进行编辑。好的,没有文档。
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
}
我不确定是什么推动了这个设计模式(如果它是一个已知的模式)。这是一种方便的模式,避免将父类每个成员变量声明为静态变量吗?还是允许多个子类每个拥有一个父类实例。但如果是这样,为什么要过度使用继承而不是普通的组合呢?
代码的其余部分没有任何迹象表明为什么要以这种方式完成。任何想法或建议都将不胜感激。谢谢!
附言:我似乎在遇到很多有趣的设计模式在这个老旧的代码中,我不知道如何处理。感谢所有帮助过我的人。
编辑:扩展代码示例。将根据我发现使用此代码的某些地方进行编辑。好的,没有文档。