我可以使用哪种设计模式?

Mat*_*ner 2 java design-patterns

我想实现以下场景.(例)

我有3个类:

  1. 调节器
  2. 苹果
  3. 汽车

public class Apple implements IBonus {
    public String name;
    public String weight;
}


public class Car implements IBonus{
    public String brand;
    public String vmax;
    public String power;
}

public class Controller {
    public List<String> values;

    public void doWork(IBonus bonusObject){
       if(bonusObject instanceOf Car){
          Car c = (Car)bonusObject;
          values.add(c.brand);
          values.add(c.vmax);
          values.add(c.power);
       }
       if(bonusObject instanceOf Apple){
          Apple a = (Apple)bonusObject;
          values.add(a.name);
          values.add(a.weight);
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我有很多像苹果和汽车这样的课程.并且还有可能在不久的将来更改,添加或删除每个类的一些变量.这意味着我总是要调整控制器类中的代码.

有谁知道合适的模式?

JB *_*zet 7

你不需要任何模式.只是简单的旧多态:

public interface IBonus {
    void fillStringList(List<String> values);
}
...

public void doWork(IBonus bonusObject){
   bonusObject.fillStringList(values);
}
Run Code Online (Sandbox Code Playgroud)