-
Builder模式
注: 1)与Factory很相似,把对象的实例化外托到Builder中。
2)根据Director所识别出的标记,Builder可以一步步的构造出一个复杂的对象。
3)与Factory相比,程序员对构造过程可以有更多的参与。
优点:
i. 程序员能更大的参与其中,构造出更复杂的对象。(在ConcreteBuilder中定义复杂的实现逻辑)
ii. 将一个复杂对象的构建与他的表示分离,使得同样的构建过程产生不同的表示。(即Director和Builder可以分开改变)
使用环境:
i. 当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时。
i. 当构造过程必须允许被构造的对象有不同的表示时。
她首先假定一个对象需要由其他的多个对象组成,但这些对象怎么进行组合和布局就要根据输入(condition)了。 Director通过产生事件,Builder通过对事件作出响应,从而一步步的定制产品的构造。这就是所谓的构建与表示分离,通过Director产生或指明构建的步骤,而通过Builder进行具体的表示。XML文件的解析是Builder模式的一个应用。Parser是Director,DefaultHandler是Builder,通过扩展DefaultHandler我们可以对XML文件的解析结果进行定制。 XSLT也是一个Builder模式的应用。通过提供不同的XSL文件(相当于Builder),即可以从同一个XML文件得到不同的输出,而对XML文件进行分析的Parser就相当于Director。
-
-
Adapter(适配器)模式
注: 1)将一个类的接口转换成客户所希望的另外一个接口,使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。
2)Adapter属于一个中间类,负责协调Client与Target之间的调用转发。
3)由于Java只支持单继承,所以,在Java中从Adapter到Target的继承都不出现。
优点:
i. 可以很容易的把原有的(Adaptee)操作,移植到新的应用当中。
使用环境:
i. 你想使用一个已经存在的类,而她的接口不符合你的要求。
ii. 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作。
iii. 你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配她的父接口。
小结:
i. 用于将一个接口转化为另一个。
ii. 在Adapter模式中有三个类Target,Adapter,Adaptee。Adapter要继承Target是从结构上考虑,从而在调用Target的地方均可用Adapter。而Adapter要实现Adaptee是从功能上考虑,达到重用Adaptee中功能的作用。
iii. 如果AWT应用程序要使用Swing当中新的类,可以提供一组从Swing到AWT的适配器。
-
Bridge(桥梁)模式
-
Composite(复合)模式
-
Flyweight(轻量级)模式
设计模式——其他