jeudi 23 novembre 2017

Java - Possible use of Strategy Design Pattern?

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
}

For strategy pattern to work, both classes must implement the same methods defined in the interface. But what if the classes need to have different fields and methods?

In my example, ClassA_V01 and ClassA_V02 are the same class except that one has more attribute "gender"

How does one implement the above such that classA can be equals to either ClassA_V01() or ClassA_V02?

Aucun commentaire:

Enregistrer un commentaire