装饰模式(decorator pattern)。
装饰模式是同一个类层次中的桥接模式。装饰模式的核心,如同桥接模式,在于多个策略的代码的串接。本节首先用类似桥接模式例程的代码,说明装饰模式的结构和特点。
★装饰模式是自引用型的桥接模式。为一个基本对象附加新功能。
5.2.1装饰Vs桥接
首先,装饰模式遵循Num模型,所谓同一个类层次,以职业/ IProfession类层次为例,IProfession的一些实现类如教师/ Teacher、医生、律师……相当于Num模型中的Zero,是一些基本类型;而IProfession的子类型,一个抽象类型ITalent/才艺——相当于Num模型中的NextOne,有自己的类层次,用于可以装饰基本对象。
其次,装饰模式的核心,在于串接多个策略的代码的。
IProfession定义了抽象方法say(String),基本类型如Teacher有自己的代码;才艺类可以在基本对象的代码中,添加更多的内容,例如在say(String)实现中,在必要的时候会说english、在必要的时候会唱几句……
例程5-9中,IProfession及其常规