目前我有 3 个类,其中大多数变量都是相同的。所有变量都有 getter 和 setter。我需要根据提供的数据类型变量Year创建类的对象,并在十多个方法中传递该对象。让我们举个例子。
我们有三个类ClassA、ClassB、ClassC。如果我们过了2017年,那么我需要A 类对象。如果我们通过了2016年份,那么我需要B类对象,而对于所有其他年份,我们需要C类对象。
然后我们需要在所有 10 个方法中传递该对象。 让我们以两种方法为例。
public void method1(int a, int b, object of classA/B/C).
public void method2(int a, int b, object of classA/B/C).
这两种方法都作用于对象并在对象中设置一些变量。
但有一个问题是我不想在ClassA,ClassB,ClassC中扩展类或实现接口(interface),因为< strong>ClassA、ClassB、ClassC 是由 XSD 文件制成的,我不想更改这些类。
请让我知道最适合我的要求的设计模式。
最佳答案
要根据过去的年份创建任何类 A/B/C 的实例,您可以选择工厂模式。这应该是非常简单的。
你的问题的第二部分是将类 A、B、C 的对象传递给你的一些方法。这可以通过两种方式完成。
如果您的类是相关的,即它们实现了一些公共(public)接口(interface)或抽象类,您可以编写您的方法来接受接口(interface)或抽象类,即
public class A implements ICommonInterface {}
public class B implements ICommonInterface {}
public class C implements ICommonInterface {}
public void method1(int a, int b, ICommonInterface object){}
或者他们扩展了一些公共(public)类
public class A extends CommonClass {}
public class B extends CommonClass {}
public class C extends CommonClass {}
public void method1(int a, int b, CommonClass object){}
如果不是这种情况,您可以使您的方法接受泛型类型
public void method1(int a, int b, T object){}
由于所有类都具有相同的变量,因此使用这两种方法都不会有任何问题。
关于java - 我需要使用哪种设计模式 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47921235/