是否存在根据条件返回子类或父类的设计模式。
场景是:
我有一个基本类和一个扩展基本类的复杂类。我需要的是根据用户要求我返回基本或复杂的类。我能够实现使用基本if else条件但感觉这似乎不正确的逻辑。鉴于我的类可以具有类似
的结构的场景,必须有一种正确的方法public class SimpleClass {}
public class ComplexClass extends SimpleClass {}
public class MoreComplexClass extends ComplexClass {}
继续......
如果我的问题是错的,我是否应该改变我创建课程的方式。请指导。
答案 0 :(得分:2)
我认为您应该更好地使用Factory method
模式而不是Abstract Factory
。看,例如这里http://www.codeproject.com/Articles/37547/Exploring-Factory-Pattern
答案 1 :(得分:1)
您描述的内容听起来像Factory方法模式。请参阅http://en.wikipedia.org/wiki/Factory_method_pattern#Java_3
上的Java示例实现答案 2 :(得分:0)
此类任务通常使用Factory Method模式实现。在你的情况下,它可以是:
public class SimpleClass{
public static SimpleClass getMyClass(String cond1/*you conditions as parameters here*/){
if ("case1".equals(cond1))
return new ComplexClass();
//...
return new SimpleClass();
}
}