【Decorator模式】
Decorator模式提供了一种给类增加职责的方法,不是通过直接继承实现的,而是通过组合,下图中的WorkerDecorator类可以派生很多在Worker基础上扩展出来的类,而不仅仅只是SeniorWorker,可以有不同的扩展。这是装饰者模式的威力所在。
但是如果只是给WorkComponent添加一个修饰,WorkDecorator可以省去,但以后可扩展性就不强了。
注意:基类指针指向派生类时,通过该指针只能访问到基类中所提供的接口。
Decorator采用组合的方式取得了比采用继承的方式更好的效果。
【图解】
普通的工人能够进行粉墙和喷漆的工作,现在需要技术工人,即掌握粉墙和喷漆的能力外,还需要有进行设计的能力。
【程序】
【输出】
【Observer模式】
Observer模式是应用最多影响最广的模式,MVC就是基于Observer模式的,改模式在系统开发和设计过程中有重要意义,MVC实现了业务层和表示层的解耦。Observer模式也是开发过程中必须要掌握的使用模式之一。
建个一(subject)对多(observer)的关系,当一发生变化的时候,依赖一的多也能同步改变。
【图解】
当温度数据发生变化时,我们期望反应温度数据的柱状图型和曲线图也能同步做出更新。
【程序】
【输出】