![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
tyzsm
Coder
展开
-
C++设计模式:观察者模式
观察者模式:定义了一对多的依赖关系,让多个观察者对象同时监听一个主题对象。这个主题对象在状态发生改变时会通知所有观察者对象,使它们能够自动更新自己。代码实现思路:定义抽象的观察者基类和主题基类,通过不同的基类继承抽象基类。并且定义通知函数,当主题对象发生改变时,能通知所有观察对象。代码:#include<iostream> #include<list> #include<string> using原创 2017-06-18 20:17:51 · 309 阅读 · 0 评论 -
C++设计模式:简单工厂模式
简单工厂模式:将业务逻辑与界面逻辑分开,实际上是表现了c++面向对象的思想。代码实现思路:定义一个基类,保存所有类的基本信息。然后类的实例化推迟到其子类。再用一个单独的类来做创造实例的过程,就是工厂。代码:#include<iostream> #include<exception> #include<string> using namespace std;class Operation { prot原创 2017-06-18 16:59:24 · 282 阅读 · 0 评论 -
C++设计模式:单例模式
单例模式:保证一个类仅有一个实例,并且提供一个访问它的全局访问点。即让类本身负责保存它的唯一样例。代码实现思路:在类内定义一个私有的静态实例,并且将构造函数也定义为私有,然后定义一个共有的静态方法来获取实例,作为唯一全局访问点。代码:#include<iostream> using namespace std;class Singleton { private: static Singleto原创 2017-06-18 16:44:36 · 310 阅读 · 0 评论 -
C++设计模式:装饰模式
装饰模式:动态地给一个对象添加一些格外的职责,这个只是对某个对象添加,而不是对整个类。就添加功能来说,装饰模式比生成子类更为灵活。实现思路:定义一个基类,然后定义装饰基类继承基类,然后每一个具体的装饰类都继承装饰基类,在需要装饰的对象上面添加功能。代码如下:#include<iostream> #include<string> using namespace std; class person {原创 2017-07-26 22:20:12 · 340 阅读 · 0 评论 -
C++设计模式:工厂模式
工厂模式:工厂模式是在简单工厂模式的基础上,将工厂类也抽象为一个接口,然后根据不同要求,编写具体的生产对象的工厂子类。代码实现思路:建立操作基类和工厂基类,然后再建立具体的操作子类继承操作基类;建立具体的工厂子类继承工厂基类。因此,当要增加新的操作时,只需要增加此功能的操作子类和工厂子类即可,而不用再修改原有代码逻辑,体现了C++的面向对象的思想。代码:#include<iostream>using原创 2017-08-05 21:00:49 · 259 阅读 · 0 评论 -
C++设计模式:策略模式
策略模式:定义了算法家族,分别封装起来,然后定义一个统一的借口,算法之间可以相互替换。使用该模式可以让算法的变化不影响到使用算法的客户。模式实现:策略模式具体实现时通常与工厂模式相结合,定义一个工厂类,来决定初始化哪个算法。代码如下:#include<iostream>using namespace std; enum RA{LRU,FIFO,RANDOM};class ReplaceAlgorit原创 2017-07-26 20:36:04 · 248 阅读 · 0 评论