A Cooly Weblog

   ::  ::  ::  ::  :: 管理

简单工厂模式Simple Factory

Posted on 2007-02-27 23:32 acooly 阅读(378) 评论(0)  编辑  收藏 所属分类: Java开发设计模式

      简单工厂模式也叫静态工厂方法模式(Static Factory Method),是由一个工厂对象隐藏并决定产品类的具体创建的一种创建模式。是工厂方法模式的一种特例。

什么时候使用?
1、创建一类有公共接口或父类的对象,并要求隐藏具体实现。
2、隐藏子类的创建,提高扩展性。

优点:隐藏具体产品的创建,客户端独立的创建产品而不用关心具体的创建过程,并在引入新的产品类时不用修改客户调用类。
缺点:所用产品的创建集中到factory上,成为系统的中心,一旦factory出现问题整个系统崩溃。

标准简单工厂模式

标准简单工厂模式

工厂类

package  pattern.simplefactory;

/**
 * 简单工厂模式-工厂类
 
@author  ZhangPu
 
*/


public   class  ProductFactory  {
    
/**
     * 简单工厂方法:通过类全路径创建产品
     * 
@param  className
     * 
@return
     
*/

    
public   static  Product factory(String className) {
        Product product 
=   null ;
        
try   {
            product 
=  (Product)Class.forName(className).newInstance();
        }
  catch  (Exception e)  {
            
throw   new  RuntimeException(e);
        }

        
return  product;
    }


}


抽象产品接口
package pattern.simplefactory;

/**
 * 产品接口
 
*/

public interface Product {
    
public String getName();    
}


具体产品类
package pattern.simplefactory;

/**
 * 普通产品
 
@author ZhangPu
 
*/


public class ConcreteProduct implements Product {
    
private String name = "普通产品";

    
public String getName() {
        
return name;
    }

}

客户端类
package pattern.simplefactory;

/**
 * client class
 
@author ZhangPu
 
*/


public class Client {
    
public static void main(String[] args) {
        Product product 
= ProductFactory.factory("pattern.simplefactory.ConcreteProduct");
        System.out.println(product.getName());
    }

}


合并抽象产品和产品的简单工厂模式



合并产品和工厂的模式



请注意与单例模式的区别:
1.单例模式构造函数是私有的,不允许外界创建。
2.单例模式只有一个实例。


只有注册用户登录后才能发表评论。


网站导航: