【发布时间】:2023-07-11 09:16:01
【问题描述】:
public class ClassA_V01 {
private String name;
private int age;
// getter and setter
}
public class ClassA_V02 {
private String name;
private int age;
private int gender;
// getter and setter
}
public static void main(String[] args) {
SomeClass classA = new ClassA_V01();
classA.setName("myName);
classA.setAge(99);
performLogic(classA);
// OR
SomeClass classA = new ClassA_V02();
classA.setName("myName);
classA.setAge(99);
classA.setAge(1);
performLogic(classA);
}
public void performLogic(SomeClass classA) {
// do something
}
要使策略模式起作用,两个类必须实现接口中定义的相同方法。但是如果类需要有不同的字段和方法呢?
在我的例子中,ClassA_V01 和 ClassA_V02 是同一个类,只是多了一个属性“gender”
如何实现上述,使 classA 可以等于 ClassA_V01() 或 ClassA_V02?
【问题讨论】:
标签: java design-patterns strategy-pattern