设计模式根据条件返回子项或父类

时间:2013-07-23 19:05:56

标签: java design-patterns

是否存在根据条件返回子类或父类的设计模式。

场景是:

我有一个基本类和一个扩展基本类的复杂类。我需要的是根据用户要求我返回基本或复杂的类。我能够实现使用基本if else条件但感觉这似乎不正确的逻辑。鉴于我的类可以具有类似

的结构的场景,必须有一种正确的方法
public class SimpleClass {}

public class ComplexClass extends SimpleClass {}

public class MoreComplexClass extends ComplexClass {}

继续......

如果我的问题是错的,我是否应该改变我创建课程的方式。请指导。

3 个答案:

答案 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();
    }
}