设计模式
橙子砰砰枪
即使盗版书也看的津津有味
展开
-
C++抽象工厂模式
C++实现抽象工厂模式原创 2022-07-08 20:41:17 · 369 阅读 · 0 评论 -
C++工厂方法模式
C++实现工厂方法模式原创 2022-07-08 20:40:42 · 396 阅读 · 0 评论 -
C++迭代器模式
C++实现迭代器模式原创 2022-07-08 17:26:41 · 312 阅读 · 0 评论 -
C++状态模式
C++实现状态模式原创 2022-07-08 16:25:12 · 544 阅读 · 0 评论 -
C++代理模式
C++实现代理模式原创 2022-07-07 22:08:31 · 311 阅读 · 0 评论 -
C++观察者模式
C++实现观察者模式原创 2022-07-07 20:08:33 · 112 阅读 · 0 评论 -
C++适配器模式
C++两种方式实现适配器模式。原创 2022-07-07 17:59:49 · 728 阅读 · 0 评论 -
C++常用设计模式总结
重构关键技法静态到动态早绑定到晚绑定继承到组合编译时依赖到运行时依赖紧耦合到松耦合设计原则变化是复用的天敌。面向对象与软件设计的目的:隔离变化:将变化带来的影响降为最小微观层面:各司其职,新产生的类不影响已存在的类对象的作用:语言层面:封装了数据和代码规格层面:一系列可被使用的公共接口概念层面:拥有某种责任的抽象依赖倒置原则DIP高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定)。抽象(稳定)不应该依赖于实现细节(变化),实现细节原创 2022-04-10 21:32:12 · 1112 阅读 · 0 评论 -
C++策略模式
Strategy策略定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换(变化)。该模式使得算法可以独立于使用它的客户程序(稳定)而变化(扩展、子类化)。解决什么问题在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,会使得对象变得异常复杂,而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需求更透明的更改对象的算法?将算法与对象本身解耦,从而避免上述问题?要点总结Strategy及其子类为组件提供了一系列可重用的算法,从而使得类型在原创 2022-03-19 12:45:44 · 373 阅读 · 0 评论 -
C++模板方法模式
定义一个操作中的算法的骨架(稳定),而将一些步骤的实现延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。早绑定与晚绑定区分稳定与变化要点总结:非常基础的设计模式最简洁的机制(虚函数的多态性)提供扩展点(继承+多态)反向控制结构(Lib控制App),Lib调用App上述实例:run()是固定的运行时,Lib的run()调用App的Step2、Step4具体实现中,被T原创 2022-03-19 12:31:12 · 792 阅读 · 0 评论 -
C++单例模式
// 单例模式,保证一个类只有一个实例,并提供该实例的全局访问点// 1.使用一个私有构造函数保证不能通过构造函数来创建// 2.使用静态私有成员变量保存唯一的实例// 3.使用公有静态成员函数初始化唯一实例/* 1.懒汉式-线程不安全 */class Sigleton1{private: Sigleton1(); static Sigleton1 *sig1;public: static Sigleton1 *Init() { // if语原创 2022-03-18 20:19:07 · 376 阅读 · 0 评论