0

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

场景是:

我有一个基本类和一个扩展基本类的复杂类。我需要的是根据用户要求我返回基本或复杂的类。我能够实现的是使用基本的 if else 条件,但觉得这似乎不是正确的逻辑。考虑到我的类可以具有这样的结构,必须有正确的方法来执行此操作

public class SimpleClass {}

public class ComplexClass extends SimpleClass {}

public class MoreComplexClass extends ComplexClass {}

并继续......

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

4

3 回答 3

2

我认为你应该更好地使用Factory method模式而不是Abstract Factory. 看看这里http://www.codeproject.com/Articles/37547/Exploring-Factory-Pattern

于 2013-07-23T19:14:30.443 回答
1

你所描述的听起来像工厂方法模式。请参阅http://en.wikipedia.org/wiki/Factory_method_pattern#Java_3上的 Java 示例实现

于 2013-07-23T19:09:54.167 回答
0

此类任务通常使用工厂方法模式来实现。在你的情况下,它可能是这样的:

public class SimpleClass{
    public static SimpleClass getMyClass(String cond1/*you conditions as parameters here*/){
      if ("case1".equals(cond1))
          return new ComplexClass();
      //...
      return new SimpleClass();
    }
}
于 2013-07-23T19:15:47.807 回答