Java 基于条件返回我的子类或父类的设计模式
是否有一种设计模式根据条件返回子类或父类 情况是: 我有一个基本类和一个扩展基本类的复杂类。我需要的是根据用户需求返回基本类或复杂类。我能够使用基本的if-else条件实现is,但觉得这似乎不符合逻辑。如果我的类可以有这样的结构,那么必须有一种适当的方法来实现这一点Java 基于条件返回我的子类或父类的设计模式,java,design-patterns,Java,Design Patterns,是否有一种设计模式根据条件返回子类或父类 情况是: 我有一个基本类和一个扩展基本类的复杂类。我需要的是根据用户需求返回基本类或复杂类。我能够使用基本的if-else条件实现is,但觉得这似乎不符合逻辑。如果我的类可以有这样的结构,那么必须有一种适当的方法来实现这一点 public class SimpleClass {} public class ComplexClass extends SimpleClass {} public class MoreComplexClass extends
public class SimpleClass {}
public class ComplexClass extends SimpleClass {}
public class MoreComplexClass extends ComplexClass {}
接着
如果我的问题是错误的,如果我应该改变我创建类的方式。请指导。您描述的内容听起来像工厂方法模式。请参见位于的Java示例实现,您所描述的内容听起来像工厂方法模式。查看位于的Java示例实现,我认为您应该更好地使用
工厂方法
模式,而不是抽象工厂
。看,例如这里我认为你最好使用工厂方法
模式,而不是抽象工厂
。例如,请看这里这些任务通常通过使用模式来实现。在您的情况下,它可能类似于:
public class SimpleClass{
public static SimpleClass getMyClass(String cond1/*you conditions as parameters here*/){
if ("case1".equals(cond1))
return new ComplexClass();
//...
return new SimpleClass();
}
}
这类任务通常通过使用模式来实现。在您的情况下,它可能类似于:
public class SimpleClass{
public static SimpleClass getMyClass(String cond1/*you conditions as parameters here*/){
if ("case1".equals(cond1))
return new ComplexClass();
//...
return new SimpleClass();
}
}
使用工厂模式动态返回运行时对象。你的问题没有真正意义。在什么情况下,您希望返回一个或另一个?关于为什么您不希望您询问的行为的有趣解读如下:,更准确地说,第一个答案这可以使用工厂方法模式实现。请注意,大多数设计模式不受编程语言的限制。这里的要求是,我需要根据用户的输入为他们提供不同的形式。因此,如果他们要求一个简单的表格,我会给他们一个简单的表格。如果他们需要复杂表单(它将包含比简单表单更多的属性),我将向他们展示复杂表单。所以它就像是用户可以配置表单一样。他们只填写他们想要的内容,使用工厂模式动态返回运行时对象。你的问题没有真正意义。在什么情况下,您希望返回一个或另一个?关于为什么您不希望您询问的行为的有趣解读如下:,更准确地说,第一个答案这可以使用工厂方法模式实现。请注意,大多数设计模式不受编程语言的限制。这里的要求是,我需要根据用户的输入为他们提供不同的形式。因此,如果他们要求一个简单的表格,我会给他们一个简单的表格。如果他们需要复杂表单(它将包含比简单表单更多的属性),我将向他们展示复杂表单。所以它就像是用户可以配置表单一样。他们只填写他们想要的+1表示精彩链接+1表示精彩链接