摘要: 装饰者模式: 能够动态地往一个类中添加新的行为。相比继承是在编译时添加行为,装饰模式是在运行时添加行为。星巴克咖啡是讲述装饰者模式的一个很好的例子。 假设现在有两种咖啡:HouseBlend、DarkRoast,同时有两种调料:Milk、Mocha。那么此时我们可以给顾客提供以下咖啡:House... 阅读全文
posted @ 2015-08-17 20:05 Sawyer Ford 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 观察者模式: 定义了subject和observer之间的一对多依赖,当subject状态改变时,所有的observer都会收到通知。结构图:C++实现:class Observer;class Subject {public: virtual void attach(Observer *o... 阅读全文
posted @ 2015-08-17 18:46 Sawyer Ford 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 策略模式: 定义了一个算法族,分别把每个算法封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。结构图:C++实现:class calculateStrategy {public: virtual int calculate(int value1, int value2... 阅读全文
posted @ 2015-08-17 11:27 Sawyer Ford 阅读(251) 评论(0) 推荐(0) 编辑