目录
- 第二章 创建型模式
-
- 1、创建型模式概述
- 2、建造者模式
-
- (1)模式的定义与特点
- (2)模式的结构与实现
- (3)应用场景
- (4)扩展
第二章 创建型模式
1、创建型模式概述
-
主要特点
将对象的创建与使用分离”,这样可以降低系统的耦合度。 -
创建型模式分为以下几种:
⑴单例(Singleton)模式 :某个类只能生成一个实例,该类提供了一个全 局访问点供外部获取该实例,其拓展是有限多例模式。
⑵ 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克 隆出多个和原型类似的新实例。
⑶ 工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子 类决定生产什么产品。
⑷ 抽象工厂(Abstract Factory)模式:提供一个创建产品族的接口,其每 个子类可以生产一系列相关的产品。
⑸ 建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分, 然后根据不同需要分别创建它们,最后构建成该复杂对象。
2、建造者模式
(1)模式的定义与特点
-
定义:指将一个复杂对象的构造与它的表示分离,使同样的构建 过程可以创建不同的表示,它是 将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。
-
优点:
1)各个具体的建造者相互独立的,有利于系统的扩展;
2)客户端不必知道产品内部组成的细节,便于控制细节 风险。 -
缺点:
1)产品的组成部分必须相同,**这限制了其使用范围;
2)如果产品的内部变化复杂,该模式会增加很多的建造 者类。
建造者模式注重零部件的组装过程,工厂模式更注重零部件的创建过程
(2)模式的结构与实现
1、结构
- 产品角色(Product):它是包含多个组成部件的复杂对象, 由具体建造者来创建其各个组成部件。
- 抽象建造者(Builder):是一个包含创建产品各个子部件的 抽象方法的接口,它通常还包含一个返回复杂产品的方法 getResult()。
- 具体建造者(ConcreteBuilder):实现了Builder接口,完 成复杂产品的各个部件的具体创建方法。
- 指挥者(Director):它调用建造者对象中的部件构造与装 配方法完成复杂对象的创建,在指挥者中不涉及具体产品的信息。
结构图:
代码:
1)产品角色:是包含多个组成部件的复杂对象。
2)抽象建造者:包含创建产品各个子部件的抽象方法。
3)具体建造者:实现了抽象建造者接口。
4)指挥者:调用建造者中的方法完成复杂对象的创建。
5)客户类
2、实现
- 用建造者模式描 述客厅装修。
类图:
产品:客厅
抽象建造者:装修工人
具体建造者:具体装修工人1
具体建造者:具体装修工人2
class ConcreteDecorator2 extends Decorator{ public void buildWall() { product.setWall("w2"); } public void buildTV() { product.setTV("TV2"); } public void buildSofa() { product.setSofa("sf2"); 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!