![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式c++实现
文章平均质量分 79
今天也要努力搬砖
大龄程序员出路在哪里
展开
-
状态模式c++实现
状态模式运行对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。原创 2022-12-29 16:56:14 · 287 阅读 · 1 评论 -
迭代器模式c++实现
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露其内部表示。类图如下代码实现如上面需求场景中,我们使用迭代器模式,让两个具体的聚合类(餐馆和咖啡馆)都提供一个createIterator的接口,客户端使用该接口返回的iterator遍历聚合体中各元素。这样客户端不需要关系聚合体的具体实现,针对不同聚合体提供的iterator使用方法一样。先定义迭代器接口(抽象类Iterator)public:};原创 2022-08-28 16:51:34 · 712 阅读 · 0 评论 -
模板方法模式C++实现
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。类图如下如上面需求场景中,在咖啡因饮料基类中,定义制作饮料的步骤(prepareRecipe方法中),子类茶和咖啡都不能改变这个步骤,但具体的冲泡方法brew和加调料方法addCondiments在子类中被重新定义。代码实现针对需求场景中的例子代码实现如下// CaffeineBeverage.cpp : 此文件包含 "main" 函数。............原创 2022-08-04 18:42:00 · 315 阅读 · 0 评论 -
适配器模式C++实现
适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。类图如下C++设计模式-适配器模式-知乎(zhihu.com)侵删)客户使用适配器的过程如下1、客户通过目标接口调用适配器的方法对适配器发出请求。2、适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口。3、客户收到调用的结果,但并未察觉这一切是适配器在起到转换作用。代码实现{public{}}i.........原创 2022-08-01 22:01:42 · 547 阅读 · 0 评论 -
单例模式C++实现
单例模式,通俗易懂的讲,就是只有一个单一的实例。设计原则:1、类的构造函数设计成私有的。这是为了不让外部实例化该类。2、提供一个获得实例的接口。任何使用该类对象的地方,都通过这个接口获得该对象实例。在这个接口中确保只实例化一个对象。一般是如果对象不存在,实例化对象;如果存在直接返回。具体可以看代码更清楚。......原创 2022-01-30 11:24:30 · 1678 阅读 · 0 评论 -
工厂模式C++实现
参考书籍《Head First设计模式》提到工厂模式有三种比较容易混淆的模式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。它们之间的区别是:简单工厂(静态工厂)模式简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。但由于经常被使用,很多地方也都把它叫做设计模式。简单工厂模式的类图简单工厂模式的类图如下,图片链接工厂模式--简单工厂模式 - 简书,侵删 Factory工厂类,简单工厂模式的核心。其包含一个创建产品的方法......原创 2021-11-05 17:25:45 · 514 阅读 · 0 评论 -
装饰者模式C++实现
参考书籍《Head First设计模式》设计模式和设计原则 装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者模式提供了比继承更有弹性的替代方案。装饰者模式遵循的设计原则:类应该对扩展开放,对修改关闭。装饰者模式中的类 装饰者模式中的类如下图,图片链接23种设计模式-装饰器模式_老杨叔叔-CSDN博客,侵删。其中Component抽象组件类,即被装饰的类,每个组件都可以单独使用,或者被装饰者包起来使用。......原创 2021-09-28 22:04:49 · 384 阅读 · 0 评论 -
观察者模式C++实现
参考书籍《Head First设计模式》设计模式和设计原则观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。观察者模式遵循的设计原则:观察者模式中的类提到观察者模式,常常会看到类似于下面的图。下图中包含了策略模式中用到的类,其中Stategy策略抽象类,定义了算法的接口(下面案例中的FlyBehavior和QuackBehavior是策略抽象类)。ConcreteStrategy具体策略类,实现具体算法(下面案例中的FlyWith原创 2021-09-27 15:27:06 · 374 阅读 · 0 评论 -
策略模式C++实现
参考书籍《Head First设计模式》设计模式和设计原则策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式采用的设计原则:1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。2、针对接口编程,而不是针对实现编程3、多用组合少用继承策略模式中的类提到设计模式,常常会看到类似于下面的图。下图中包含了策略模式中用到的类,其中Stategy策略抽象类,定义了算法的接口(下面案例中的FlyBeh原创 2021-09-24 22:27:40 · 343 阅读 · 0 评论