Simple Factory (简单工厂模式)


  • 简单工厂模式不是23种设计模式之一,简单工厂模式属于创建型模式
  • 又叫做静态工厂方法(Static Factory Method)
  • 简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

 

角色:

 

   抽象产品角色(Product) :

          是所有对象的父类,它负责描述所有实例所共有的公共接口。

 

   具体产品角色(ConcreteProduct) :

          所有创建的对象都是充当这个角色的某个具体类的实例,实现了Product接口。

 

   工厂类角色(Creator) :

          简单工厂模式的核心,是创建所有实例的内部逻辑,可被外界直接访问(因为里面有一个静态方法),创建所需产品的对象。

 

 

代码实现:

 

1.Product.java

 

[java] view plain copy
  1. package com.simplefactory ;  
  2.   
  3. // 定义一个抽象产品角色  
  4. public interface Product  
  5. {  
  6. }  

 

2.ConcreteProductA.java

 

[java] view plain copy
  1. package com.simplefactory ;  
  2.   
  3. //具体产品角色A  
  4. public class ConcreteProductA implements Product  
  5. {  
  6. }  

 

3.ConcreteProductB.java

 

[java] view plain copy
  1. package com.simplefactory ;  
  2.   
  3. //具体产品角色B  
  4. public class ConcreteProductB implements Product  
  5. {  
  6. }  

 

4.Creator.java

 

[java] view plain copy
  1. package com.simplefactory ;  
  2.   
  3. //工厂类角色  
  4. public class Creator  
  5. {  
  6.     public static Product methodTest(String str)  
  7.     {  
  8.         if ("A".equals(str))  
  9.         {  
  10.             //这里可做好多事  
  11.             return new ConcreteProductA() ;  
  12.         }  
  13.   
  14.         else if ("B".equals(str))  
  15.         {  
  16.             return new ConcreteProductB() ;  
  17.         }  
  18.   
  19.         return null ;  
  20.     }  
  21. }  

5.Client.java

 

[java] view plain copy
  1. package com.simplefactory ;  
  2.   
  3. public class Client   
  4. {  
  5.     public static void main(String[] args)  
  6.     {  
  7.         Product product = Creator.methodTest("A") ;  
  8.         System.out.println(product.getClass().getName()) ;  
  9.   
  10.         Product product2 = Creator.methodTest("B") ;  
  11.         System.out.println(product2.getClass().getName()) ;  
  12.     }  
  13. }  
posted @ 2016-03-19 09:54  starskyhu  阅读(1013)  评论(0编辑  收藏  举报