Simple Factory (简单工厂模式)
-
简单工厂模式不是23种设计模式之一,简单工厂模式属于创建型模式,
-
又叫做静态工厂方法(Static Factory Method)
-
简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
角色:
抽象产品角色(Product) :
是所有对象的父类,它负责描述所有实例所共有的公共接口。
具体产品角色(ConcreteProduct) :
所有创建的对象都是充当这个角色的某个具体类的实例,实现了Product接口。
工厂类角色(Creator) :
简单工厂模式的核心,是创建所有实例的内部逻辑,可被外界直接访问(因为里面有一个静态方法),创建所需产品的对象。
代码实现:
1.Product.java
package com.simplefactory ;
// 定义一个抽象产品角色
public interface Product
{
}
2.ConcreteProductA.java
package com.simplefactory ;
//具体产品角色A
public class ConcreteProductA implements Product
{
}
3.ConcreteProductB.java
package com.simplefactory ;
//具体产品角色B
public class ConcreteProductB implements Product
{
}
4.Creator.java
package com.simplefactory ;
//工厂类角色
public class Creator
{
public static Product methodTest(String str)
{
if ("A".equals(str))
{
//这里可做好多事
return new ConcreteProductA() ;
}
else if ("B".equals(str))
{
return new ConcreteProductB() ;
}
return null ;
}
}
5.Client.java
package com.simplefactory ;
public class Client
{
public static void main(String[] args)
{
Product product = Creator.methodTest("A") ;
System.out.println(product.getClass().getName()) ;
Product product2 = Creator.methodTest("B") ;
System.out.println(product2.getClass().getName()) ;
}
}