Java技术_每天掌握一种设计模式(001)_设计模式概念及分类
Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)
Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)
Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂)
Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式)
Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式)
1.模式描述
将一个复杂对象的构建过程(实例化过程)与他的表示(产品)相分离,使得同样的构建过程可以创建不同的表示。
2.模式作用
可以一定程度上解耦,消费者和对象的构造过程隔离开,对象如何构造与消费者完全无关。
可以一定程度增加扩展性,若增加一个产品实现,只需要实现产品接口,修改工厂创建产品的方法,消费者可以无感知(若消费者不关心具体产品是什么的情况)。
可以一定程度增加代码的封装性。建造者类负责构造产品,指挥者类负责操作建造者类进行构造,分工明确。
等等。//TODO
3.适用场景
要创建一些复杂对象(组成这些对象的内部组件的构造顺序是稳定的,但这些组件可能会面临着复杂的变化)的时候。
消费者不关心对象构造过程的时候。
等等。//TODO
例如:复杂异常的构造、各系统间接口传递的复杂对象、不同内容的邮件提示(邮件视为产品,不同builder构造不同内容的邮件)
4.模式要素
提供一个建造者类的接口。建造者类均要实现这个接口。
提供一个指挥者类。该类操作建造者类,按照一定步骤进行产品的构建。
由建造者实现类创建产品类的实例。建造者类应提供一系列方法,对产品对象进行初始化。
5.类图
6.模式实例代码
指挥者:
建造者:
消费者:
原文地址:http://blog.csdn.net/ooppookid/article/details/42875381