![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
知识拓荒者
共同学习
展开
-
观察者模式
观察者模式定义了对象间的一对多依赖,这样一来,当一个对象改变时,它的所有依赖者都会收到通知并自动更新。可以用传统的订报纸类比:报社负责出版报纸读者向报社订阅报纸只有报社有新报纸,读者就会收到读者可以取消订阅报社将读者从订阅名单中剔除,不再派送新报纸其中一个报社对应着多个读者,读者订阅消息,报社派送消息,这就是观察者模式。其中报社被称为主题,读者被称为观察者。观察者模式提供了一种对象设计,让主题和观...原创 2018-06-24 22:04:55 · 146 阅读 · 0 评论 -
策略模式
策略模式定义了算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。将超类A中变化的部分提取出来将这些变化的部分,分别设计接口,即其类B, C, D和子类BB, BBB, CC, CCC, DD, DDD在超类A中使用变量记录A{B varb;C varC;void getBFunc(){B.func();}void getCFunc(){C.func();}}在A...原创 2018-06-24 22:06:09 · 112 阅读 · 0 评论 -
装饰者模式
装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供比继承更有弹性的替代方案,组件和装饰者继承自相同的抽象类/接口装饰者有个变量记录组件通过嵌套调用实现装饰for example:星巴克咖啡:基础咖啡作为组件调料作为装饰者调料可以任意搭配,比如:奶泡、摩卡、糖浆等等//超类组件public abstract class component {methodA();methodB();}//继...原创 2018-06-28 21:56:44 · 189 阅读 · 0 评论 -
工厂模式
定义定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类中,工厂方法用来处理对象的创建,并将这样的行为封装在子类中,这样,客户程序中关于超类的代码就和子类对象创建的代码解耦了使用abstract Product factoryMethod(String type)工厂方法是抽象的,依赖子项来处理对象的创建工厂方法必须返回一个产品,超类中使用的方法通常使用到工厂...原创 2018-06-28 22:00:05 · 152 阅读 · 0 评论 -
单件模式
单件模式确保一个类只有一个实例,并提供一个全局访问点class service{private: service();public: static service* getInstance(); ~service();private: static service* instance_;}service* service::instance_ = 0;service* service::getIn...原创 2018-06-28 22:01:49 · 166 阅读 · 0 评论