设计模式
文章平均质量分 63
常用的设计模式
程序员小吕666
程序员,永远学习
展开
-
c++外观模式
外观模式简介UML优点缺点代码参考简介在MVP架构的软件分层框架下常见。对应界面来讲我点击一个按钮不需要知道底层完成这个业务的步骤细节。只需要P层提供一个接口用于调用即可。在分层软件框架下外观模式常被使用在层与层之间。UML优点(1) 它对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。通过引入外观模式,客户端代码将变得很简单,与之关联的对象也很少。(2) 它实现了子系统与客户端之间的松耦合关系,这使得子系统的变化不会影响到调用它的客户端,只需要调整外观类原创 2021-12-22 15:09:00 · 738 阅读 · 0 评论 -
c++组合模式
c++组合模式简介UML优点缺点使用场景代码简介将对象组合成树形结构以表示"部分-整体"的层次关.组合模式使得用户对单个对象和组合对象的使用具有一致性.UML优点高层模块调用简单;高度自由缺点叶子和树枝的声明都是实现类,违反了依赖倒置原则.使用场景1.你想表示对象的部分-整体层次结构。2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。代码代码已公司架构为例。阿里总公司旗下北京分公司旗下高德地图,杭州总部旗下得支付宝,淘宝 等。...原创 2021-10-27 21:12:05 · 290 阅读 · 0 评论 -
c++桥接模式
c++桥接模式简介UML优点缺点代码简介这是这些设计模式里,理解上最费劲的模式了。将抽象化(Abstraction)与实现化(Implementation)分离,使得二者可以独立地变化。以前我们实现一个接口直接使用继承 就好了。桥接模式则是把继承关系转化成了 组合关系。实现 了 抽象 与 实现 分离。UML优点1.将实现抽离出来,再实现抽象,使得对象的具体实现依赖于抽象,满足了依赖倒转原则。2.将可以共享的变化部分,抽离出来,减少了代码的重复信息。3.对象的具体实现可以更加灵活,可以满足原创 2021-10-25 21:29:25 · 425 阅读 · 1 评论 -
c++适配器模式
c++适配器模式简介UML优点缺点代码简介将一个类的接口转换成客户希望的另外一个接口UML优点可以将不符合要求的接口转换为需要的接口。缺点多了个适配器类出来代码能用组合实现的一般不推荐使用继承,所以代码中类模式轻易不要用#include <iostream>using namespace std;class ITarget{public: virtual void request() = 0;};class Adaptee{public:原创 2021-10-24 21:07:54 · 214 阅读 · 0 评论 -
C++装饰者模式
C++装饰者模式简介UML优点缺点代码理解简介时常会遇到这样一种情况,我已经设计好了一个接口,并且也有几个实现类,但是这时我发现我设计的时候疏忽了,忘记了一些功能,或者后来需求变动要求加入一些功能,最简单的做法就是修改接口,添加函数,然后继承类中都相应的添加实现,这样做倒也没什么问题,但是如果这种变化来个好几次或者继承类非常多,那工作量可就大了。这时大神们就发明了装饰者模式,在不修改现在有接口和实现类的基础上实现功能或者状态的添加。UML优点1.可以不用修改原有的接口,就可以实现新功能的添加。原创 2021-10-24 20:30:00 · 2107 阅读 · 0 评论 -
c++代理模式
c++代理模式简介UML优点缺点使用场景代码参考简介代理模式也称为委托模式。作用就是找一个对象来替我们访问某个对象。意图:为其他对象提供一种代理以控制对这个对象的访问。UML1.Subject:定义RealSubject和Proxy的共用接口,这样就可以在任何使用RealSubject的地方都可以使用Proxy。2.RealSubject:真实处理业务的角色。3.Proxy:保存一个引用使得代理可以访问实体。优点职责清晰:真实角色就是实现实际的业务逻辑,不关心其他非本职责的事务,通过后期原创 2021-10-19 15:59:00 · 172 阅读 · 0 评论 -
c++建造者模式
c++建造者模式简介优点缺点使用场景代码实例参考文章简介建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。这是建造者模式的标准表达,不过看着让人迷惑,什么叫构建和表示的分离?一个对象使用构造函数构造之后不就固定了,只有通过它方法来改变它的属性吗?而且还要同样的构建过程搞出不同的表示,怎么可能呢?多写几个构造函数?其实多写几个构造函数,根据不同参数设置对象不同的属性,也可以达到这样的效果,只是这样就非常麻烦了,每次要增加一种表示就要添加一个构造函数,将来构造函数会多得原创 2021-10-18 17:32:16 · 169 阅读 · 0 评论 -
c++单例模式
c++单例模式简介代码参考简介因为在设计或开发中,肯定会有这么一种情况,一个类只能有一个对象被创建,如果有多个对象的话,可能会导致状态的混乱和不一致。这种情况下,单例模式是最恰当的解决办法。它有很多种实现方式,各自的特性不相同,使用的情形也不相同。今天要实现的是常用的三种,分别是饿汉式、懒汉式和多线程式。通过单例模式, 可以做到:确保一个类只有一个实例被建立提供了一个对对象的全局访问指针在不影响单例类的客户端的情况下允许将来有多个实例具体细节见:单例要注意的地方代码参考原文链接:ht原创 2021-10-14 17:20:05 · 54 阅读 · 0 评论 -
c++原型模式
c++原型模式简介特点缺陷代码使用场景简介UMl特点可以在程序运行时(对象属性发生了变化),得到一份内容相同的实例,但之间还不会相互干扰。缺陷使用场景跟拷贝构造相似度很高,能用拷贝构造(注意考虑深浅拷贝)解决不用非得搞设计模式。注意但是使用了原型模式就是不想暴露给用户对象创建过程。只能通过clone来获取对象的拷贝。和工厂模式可以搭配,隐藏对象的创建细节。代码#include <string>#include <iostream>using namespa原创 2021-10-13 20:26:23 · 187 阅读 · 0 评论 -
c++工厂模式总结
工厂模式工厂模式种类单工厂模式特点缺陷工厂方法模式![在这里插入图片描述](https://img-blog.csdnimg.cn/33a3ca39b69b4b329d641987f2d39118.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56iL5bqP5ZGY6ICB5ZCV,size_20,color_FFFFFF,t_70,g_se,x_16)特点缺陷抽象工厂模式![在这原创 2021-10-12 14:56:49 · 111 阅读 · 0 评论