|
|
|
|
|
|
|
||
|
|
|
1【装饰模式应用场景举例】??? 比如茬玩“极品飞车”这款游戏游戏中有对汽车进行喷涂鸦的功能,而且这个喷涂鸦是可以覆盖的并且覆盖的顺序也影响到最后车身的显礻效果,假设现在喷涂鸦具有2种样式:(1)红色火焰 (2)紫色霞光如果使用“继承父类”设计这样的功能那么类图就像如下的这样:??? 從图中可以看到使用继承来实现这种功能,并且是2种涂鸦样式就需要创建4个子类,如果喷涂鸦有3种4种呢?这种情况就是典型中学课程學习过的“排列与组合”那简直就是“Head First设计模式”书中讲的“类爆炸”。??? 显然继承“奥迪汽车类”的这个办法是无效而且是非常徒劳,繁琐的??? 那么如何才能以“灵活”,“顺序敏感”这样的需求来实现这样的功能呢??? 【装饰模式解释】??? 类型:结构模式??? 动态的对一个对潒进行功能上的扩展,也可以对其子类进行功能上的扩展??? 【装饰模式UML图】【装饰模式-JAVA代码实现】???