解决方案 »

  1.   

    比如,A类是B类的父类,有这样一行代码:A a = new B();
    a.test()如果test方法的实现类要换成A类的子类C类,那么就要改调用的代码A a = new C();
    a.test()但是如果要用抽象工厂的话,那就不用去修改客户端的调用代码,可以实现代码解耦。
      

  2.   

    同1楼说的
    假如你是一个API的提供者  你的同事是一个API的调用者 
    你提供了一个创建类对象的方法,但是某天你的这个方法要扩展,这个时候肯定是希望这个工作直接你提供API的时候就能搞定 而不用你同事再去改代码 这个时候就能体会到抽象工厂的好处了吧