![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 52
qq_43812167
这个作者很懒,什么都没留下…
展开
-
工厂方法和抽象工厂
工厂方法和抽象工厂工厂方法 工厂方法 首先看一下为什么需要工厂方法: class ISplitter{ public: virtual void split()=0; virtual ~ISplitter(){} }; class BinarySplitter : public ISplitter{ }; class TxtSplitter: public ISplitter{ }; class PictureSplitter: public ISplitter{原创 2021-02-28 15:43:21 · 62 阅读 · 0 评论 -
设计模式学习记录
一些设计模式中介者模式二、适配器模式门面模式代理模式 自言自语:感觉设计模式学完后什么都不记得,哈哈 中介者模式 中介者模式也是在解决耦合的问题,可以从左边几个对象的引用关系看出,多个对象相互引用使得对象之间的关系变得比较复杂。当使用中介者模式改造后如右边所示,所有的对象都和中介者之间是直接依赖关系,而对象与对象之间是相互独立的,这样修改起来就变得放心很多,不用担心相互的影响。感觉和mvc有点像,view层直接依赖于controller层,model层也是直接依赖于controller层,从而实现界面效果原创 2021-02-22 22:04:58 · 60 阅读 · 0 评论 -
观察者模式
观察者模式 学完观察者模式并没有领悟到观察者模式的真谛,但是想到了一个小例子,在这里记录一下,感觉能够对应下面的一段话。 就是比如说我们在看视频的时候,点击了暂停,那么这时候就会触发几个动作,声音要关闭,视频要暂停在当前帧,还有可能弹出广告,那么又能在暂停按钮这个类里面就需要定义视频类的对象,声音类的对象,广告类的对象,这样耦合关系就很紧密了,我以前看过一个处理是这样,c#语言做的就是事件的注册于派发,跟这个差不多,就是定义一个单例类eventlistener,里面有一个dictionary(c++中的m原创 2021-02-21 20:06:15 · 67 阅读 · 0 评论 -
策略模式(c++)
策略模式 背景:假如现在要做一个税收的算法,这个税收的功能要支持多个国家,未来可能需要支持更多的国家。 enum TaxBase { CN_Tax, US_Tax, DE_Tax, FR_Tax //更改 }; class SalesOrder{ TaxBase tax; public: double CalculateTax(){ //... if (tax == CN_Tax){ //CN**原创 2021-02-19 21:50:26 · 58 阅读 · 0 评论 -
c++(c#)单例模式
@TOC 单例顾名思义就是一个类只实例化一个单例对象,单例模式常见的写法有懒汉式和饿汉式,首先给出一个懒汉式的写法。 #include <iostream> class Singleton { private: Singleton() { std::cout << "调用构造函数" << std::endl;} Singleton(const Singleton& other) = delete; Singleton& operat原创 2021-01-25 21:51:38 · 180 阅读 · 1 评论