简单工厂模式的构成
工厂类 (Creator)角色:担任这个角色的是简单工厂模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体类实现。
抽象产品(Product)角色:担任这个角色的类是简单工厂模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个接口或者抽象类实现。
具体产品(Concrete Product)角色:简单工厂模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体类实现。
1 /*工厂类 (Creator)角色*/ 2 package simplefactory; 3 public class Creator 4 { 5 public static Product createProduct(String str) 6 { 7 if("A".equals(str)) 8 { 9 return new ConcreteProductA(); 10 } 11 else if("B".equals(str)) 12 { 13 return new ConcreteProductB(); 14 } 15 16 return null; 17 } 18 } 19 20 /*抽象产品(Product)角色*/ 21 package simplefactory; 22 public abstract class Product 23 { 24 25 } 26 27 /*具体产品(Concrete Product)角色*/ 28 package simplefactory; 29 public class ConcreteProductA extends Product 30 { 31 32 } 33 /*具体产品(Concrete Product)角色*/ 34 package simplefactory; 35 public class ConcreteProductB extends Product 36 { 37 38 } 39 40 package simplefactory; 41 public class Client 42 { 43 public static void main(String[] args) 44 { 45 Product productA = Creator.createProduct("A"); 46 47 System.out.println(productA.getClass().getName()); 48 49 Product productB = Creator.createProduct("B"); 50 51 System.out.println(productB.getClass().getName()); 52 } 53 }