要学习详细的设计模式内容可以阅读《Java与模式》,在这里只做一点简单总结。
1.简单工场模式的结构
如果系统仅有一个产品角色,抽象产品角色可以省略,这是简单工场模式为:
有时候工场角色可以由产品角色代替(如Java.text.DateFormat类),这时结构变为:
单例模式来源于简单工场模式,这时要注意与单例模式的区别,单例模式要求构造函数为私有,单例模式的实例化只能由自身的静态工场方法完成。
如果三个角色完全合并,结构变为:
2.工场方法模式是简单工场模式的扩展,它的核心是一个抽象工场类,而在简单工场模式中核心是一个具体类。工场方法类返回的数据类型为一个抽象数据类型,客户端并不清楚这个类型到底是什么。结构如下: