摘要:
1. 代理模式: 为其他对象提供一种代理以控制这个对象的访问。代理模式使用场合:a. 远程代理, 为一个对象在不同的地址空间提供局部代理,隐藏一个对象存在于不同地址空间的事实。如.net中WebService的应用。b. 虚拟代理, 根据需要创建开销很大的对象, 通过它来存放实例化需要很长时间的真是对象。 如浏览器中 大图片的 显示过程,先显示一个代理,下载完成后在显示真实。c. 安全代理, 用来控制真实对象访问时的权限。d. 智能指引, 当调用真实对象时, 代理处理另一些事。实例:givegift.h 代理和追求者总有的特征作为接口#ifndef GIVEGIFT_H#define GIVE 阅读全文
摘要:
1.装饰者模式 Decorator动态地给一个对象添加一个额外的职责, 就添加功能来说, 装饰模式比生成子类更为灵活。每个装饰对象的实现和如何使用这个对象分离, 每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链中。实例: 人和衣服的装饰关系。person.h Person类#ifndef PERSON_H#define PERSON_H#include #include using namespace std;class Person{public: Person(); Person(string name); void virtual show();private... 阅读全文
摘要:
1. 策略模式: 它定义了算法家族, 分别封装起来,使他们之间可以相互替换,此模式让算法变化, 不会影响到使用算法的客户。用相同的方法调用不同的算法,减少各种算法类与使用算法类之间的耦合。实例中策略模式与工厂模式相结合,不同之处在于 main函数的使用体现,如果用但纯的工厂模式则必须知道两个类, 但是两种模式结合后,客户端只需要知道一个类 context .另外,工厂模式生产的是具体的算法, 而策略模式则是能通过不同策略调用不同算法,直接获取需要的结果。实例:strategy.h 策略基类#ifndef STRATEGY_H#define STRATEGY_Hclass Strategy{pu 阅读全文