我想知道用工厂作为参数到底比直接用接口作为参数好在哪里。在调用把工厂作为参数的方法时,虽然不用指明实现接口的类,但是要指明实现工厂的类,并没有提高代码的重用性啊。请大家指点。

解决方案 »

  1.   

    工厂做参数的话,你只需要去根据这个参数自动调用接口,而不用具体管它的如何实现
    如果你接口做参数的话,那么你还得去实例化实现接口这个类。。
    你感觉哪个更方便点呢?
    这就好比人、工厂、和斧子的问题建议去看看《spring2.0开发宝典》
      

  2.   

    简单工厂模式例子,供大家研究,可以继续讨论
    public interface ProductA  {}public class ProductA1 implements ProductA  {}
    public class ProductA2 implements ProductA  {}public interface ProductB  {}public class ProductB1 implements ProductB  {}public class ProductB2 implements ProductB  {}public interface Creator  {    public ProductA factoryA();
        
        public ProductB factoryB();
        
    }public class Creator1 implements Creator  {    public ProductA factoryA()  {
            return new ProductA1();
        }    public ProductB factoryB()  {
            return new ProductB1();
        }}public class Creator2 implements Creator  {    public ProductA factoryA()  {
            return new ProductA2();
        }    public ProductB factoryB()  {
            return new ProductB2();
        }}public class Client  {
        
        ProductA pa;
        ProductB pb;
        
        public static void main(String[] args)  {
            Client client = new Client();
            Creator1 c1 = new Creator1();
            client.pa = c1.factoryA();
            client.pb = c1.factoryB();
            System.out.println(client.pa);
            System.out.println(client.pb);
        }}
      

  3.   

    李刚写得,真的不错,前阵子读完的,最近在读 thinking in java the Third Edition