设计模式
文章平均质量分 77
普通网友
这个作者很懒,什么都没留下…
展开
-
备忘录模式
#include #include #include using namespace std; //备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。 //备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住, //并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。 //设计需要回放的软件,记录一下事物的状态。数据库备份,文档的编译,原创 2016-07-29 17:33:46 · 14134 阅读 · 0 评论 -
策略模式
#include #include #include using namespace std; //策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中, //从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 //策略模把行为和环境分开。环境类负责维持和查询行为类, //各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减、修原创 2016-07-29 19:11:32 · 14208 阅读 · 0 评论 -
抽象工厂模式
#include #include using namespace std; //工厂模式:客户类和工厂类分开。 //消费者任何时候需要某种产品,只需向工厂请求即可。 //消费者无须修改就可以接纳新产品。缺点是当产品修改时, //工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 //消费者不固定,工厂者不固定,(工厂根据消费者动作) //实现步骤 //实现消费者抽象基类,消费者派生原创 2016-07-29 20:46:10 · 14067 阅读 · 0 评论 -
工厂方法模式
#include #include using namespace std; //工厂方法模式:核心工厂类不再负责所有产品的创建, //而是将具体创建的工作交给子类去做,成为一个抽象工厂角色 //,仅负责给出具体工厂类必须实现的接口, //而不接触哪一个产品类应当被实例化这种细节。 //相当于请同一个妹子去不同的地方做不同的事。 class Operation { public:原创 2016-07-29 21:09:19 · 14183 阅读 · 0 评论 -
代理模式
#include #include using namespace std; //代理模式:代理模式给某一个对象提供一个代理对象, //并由代理对象控制对源对象的引用。 //代理就是一个人或一个机构代表另一个人或者一个机构采取行动。 //某些情况下,客户不想或者不能够直接引用一个对象, //代理对象可以在客户和目标对象直接起到中介的作用。 //客户端分辨不出代理主题对象与真实主题对象。 //代原创 2016-07-29 22:26:22 · 14124 阅读 · 0 评论 -
单例模式
#include #include using namespace std; //单例模式:单例模式确保某一个类只有一个实例, //而且自行实例化并向整个系统提供这个实例单例模式 //单例模式只应在有真正的“单一实例”的需求时才可使用。 //#define public private 解除单例模式 class Singleton { private: int i; static S原创 2016-07-29 22:49:00 · 14082 阅读 · 0 评论 -
访问者模式
#include #include #include using namespace std; //访问者模式:访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。 //一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。 //访问者模式适用于数据结构相对稳定的系统, //它把数据结构和作用于结构上的操作之间的耦合解脱开, //使得操作集合可以相对自由的演化。访问者模式使得原创 2016-07-29 23:25:05 · 14180 阅读 · 0 评论 -
观察者模式
#include #include #include using namespace std; //QT的和Windows的消息机制都是观察者模式实现的。 //实现原理:有一个监视类,存储了所有观察者对象的地址, //当收到消息的时候就调用每一个类的处理函数对他们进行操作. //观察者模式:观察者模式定义了一种一对多的依赖关系, //让多个观察者对象同时监听某一个主体对象。 //这个主体原创 2016-07-30 10:17:37 · 14219 阅读 · 0 评论