Java与模式笔记(2)

简单工厂(Simple Factory)模式是类的创建模式,又称静态工厂方法模式(Static Factory Method Pattern)。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

结构与角色:

Java与模式笔记(2)_第1张图片 

工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的之直接调用下创建产品对象,它往往由一个及具体Java类实现。

抽象产品(Product)角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个Java接口或者Java抽象类实现。

具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体的Java类实现。

简单工厂模式包括几种变型:

1、  抽象产品角色省略。

2、  工厂角色与抽象产品角色合并。如java.text.DateFormat

3、  三个 角色全部合并。

优点:工厂类含有必要的逻辑判断,可以决定在什么时候创建哪一个类的实例,而客户端可以免除直接创建产品对象的责任,而仅仅负责“消费”产品。

缺点:工厂类形成一个全能类(或叫上帝类,God Class),一旦不能正常工作,影响巨大。扩展较为困难,静态方法作为工厂方法,无法由子类继承。

简单工厂方法只是在有限的程度上支持“开-闭”原则。

你可能感兴趣的:(java,工作,Class,扩展,产品)