策略模式中
有2个子类各有接口中的display方法
不过display方法的参数列表不一样
怎么封装起来?
用工厂的话呢?

解决方案 »

  1.   


    public interface Obj{
    void display();
    }
    public class Obj1 interface Obj{
    public void display(){
    System.out.println("Obj");
    }
    }
    public class Obj2 interface Obj{
    public void display(){
    System.out.println("Obj2");
    }
    }public class FactoryObj{
    public Obj obj;
    public FactoryObj(Obj obj){
             this.obj=obj;
    }
    public void FactoryDisplay(){
              obj.display();
    }
    }
      

  2.   

    display参数列表不一样就是两个不同的方法,java以方法名和参数区分方法,如果类实现了接口,那么必须实现与接口里display方法
    一样的参数列表的方法。
      

  3.   


    同意~如果跟接口定义的方法的参数不同那就不是实现接口中的那个方法~而是自己又定义了一个新的方法~所以要实现接口中定义的方法就要方法名和参数类型以及数量都要相同~
    lz如果你调用的display方法是通过实现接口获得的那就可以使用工厂~否则不建议使用工厂~当然如果你调用的是另一个同名不过参数不同的display的话那就没必要用到工厂了~
      

  4.   

    有人赤裸裸的贴代码吗?
    策略模式的例子参数列表要相同
    不同怎么实现?
    还是用工厂来判断2个子类然后调用各自的display方法