设计模式
乐安草堂
PMP, C++
展开
-
设计模式: 装饰者(decorator)模式
设计原则: 类应该对扩张开发,对修改关闭。定义: 动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。别名: Wrapper注意点:装饰者在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的。类图:例子: starbuzz中咖啡和饮料的使用。缺点: 可能会造成很多小类。原创 2015-04-29 11:46:38 · 444 阅读 · 0 评论 -
设计模式:工厂(factory)模式 与 抽象工厂(abstract factory)模式
工厂模式的定义: 定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。 工厂方法让类把实例化推迟到子类。抽象工厂模式的定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。工厂模式的类图:抽象工厂模式的类图:说明:此模式很好的说明了OO中的一个原则:“依赖倒置原则”。(这个倒置,原创 2015-04-30 14:13:25 · 481 阅读 · 0 评论 -
设计模式:观察者(observer)模式
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。类图:推模式的类图:拉模式的类图:(推荐:因为无法预测每个观察者到底需要何种数据,也方便增加新数据时,改动最小)注意:有多个观察者时,不可以依赖特定的通知次序。原创 2015-04-28 13:48:19 · 469 阅读 · 0 评论 -
设计模式: 命令(command)模式
1,定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。此模式也方便实现undo / redo之类的功能。2,类图原创 2015-05-20 16:52:08 · 482 阅读 · 0 评论 -
设计模式: 单件(singleton)模式(2015-04-29 11:46)
1, 定义:确保一个类只有一个实例,并提供一个全局访问点2,类图3,优点: 提供全局的一个实例; 延迟实例化;(当然也可以在static变量定义的同时创建Singleton的实例)原创 2015-05-19 15:12:38 · 570 阅读 · 0 评论