设计模式总结链接 
 
 
  
   工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 
   工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 
 
一。简解
工厂方法模式是在简单工厂模式基础上做了一点改进,生产某一类方法的工厂,不仅仅局限于某个(简单工厂模式是生产某个)。
二。用途 
 主要是用来根据需求生产某一类产品,进一步实现对象创建和使用之间的解耦,通过接口或者抽象类的方式去实现不同对象的相同调用(此处涉及面向对象的里氏代换原则),比起简单工厂模式适应性更广,更易实现同类产品的扩展。
三。实例</font>
用户需要某种产品,通过工厂类生产某种产品,将这种产品抽象为接口,扩展时可以通过实现接口进行扩展。
测试类
package zsl.工厂方法模式;
public class Main {
    public static void main(String[] args) {
        ProdectFactory myFactory = new ProdectFactory();
        Prodect prodect = myFactory.prodectInstance("我要的产品");
        prodect.sayName();
    }
}
产品接口类
package zsl.工厂方法模式;
public interface Prodect {
    /**
     * 说出该产品的名字
     */
    public void sayName();
}
产品工厂类
package zsl.工厂方法模式;
public class ProdectFactory {
    /**
     * 根据需求生产一个产品
     * @param name
     * @return
     */
    public Prodect prodectInstance(String name){
        return new ProdectInstance(name);
    }
}
产品实类
package zsl.工厂方法模式;
public class ProdectInstance implements Prodect{
    private String name;
    public ProdectInstance(String name) {
        this.name = name;
    }
    /**
     * 实现接口的方法
     */
    @Override
    public void sayName() {
        System.out.println(this.name);
    }
}
四。优点
首先工厂方法基本继承了简单工厂的优点(除了简单,这可是简单工厂独有的特征 (∩_∩)) 
 其次,工厂方法加入了生产一类的产品功能,这个相当于是对简单工厂中实例进行了一种接口的封装,对外提供接口访问,进一步实现了,使用、实现和生产之间的解耦。 
 加入接口的封装,极大的提高了对某类产品的扩展性。
五。不足
生产一类产品,什么意思,对于不同类产品的生产不是很方便,这也是这个模式的一点小不足之处。不足归不足,达到需求就好了,想用好的,是要代价的。
 
                   
                   
                   
                   
                            
 
                             
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   386
					386
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            