设计模式是一套被在实际使用中,总结出来的一些代码设计经验的总结,学习设计模式有助于理解框架的结构。成熟的框架通常使用了多种设计模式,如果你熟悉这些设计模式,毫无疑问,对于快速掌握框架的结构有很大的帮助。
主要功能
用来建造一个对象“产品”,主要是用来创建那些构造过程比较复杂并且内部构造顺过程是比较稳定的对象。能够将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表现(主要体现在对象内在不同)
UML类图结构
装饰模式中的角色
- 抽象建造者(Builder): 抽象接口,要以是抽象类也可以是接口,一般会有一些buildXX()方法,用于构造”产品”的各个部件,还会有一个方法build(),用于返回构造好的”产品”
- 具体构造角色(ConcreteBuilder ):实现Builder接口,实现各个部件的具体构造
- 产品角色(Product):被构造的复杂对象
- 指挥者(Director): 控制复杂对象的建造过程,也用它来隔离建造过程与产品的关联,包含一个具体构造角色,通过Set方法或构造方法传入
对模式的理解
适用场景
需要生产的产品有复杂的内部结构
需要生产的产品对象的属性互相依赖
在构造过程中会用到其它对象
特点
关注的是零件类型在装配过程中的顺序
封装性,将一个复杂对象的构建过程与它的表示分离,隐藏构造的过程和细节,调用者只需要传入构造者,无需关心建造细节
建造者独立,容易扩展
便于控制细节风险,因为建造者独立,所以可以对建造过程逐步细化,而不对其它的模块产生任何影响
应用场景
- Apache HttpClient包中的HttpClients
结尾
作者:BK
简书地址:https://www.jianshu.com/u/a5230c4f0b7a
鉴于本人才疏学浅,不足之处还望斧正,也欢迎关注我,无特殊说明的都是自己一字一句码出来的,尊重原创,如果转载请说明出处!