![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Cindy_1224
这个作者很懒,什么都没留下…
展开
-
建造者模式
如果一个对象的构建比较复杂,将一个对象的构建和对象的表示进行分离,使得同样的构建过程可以创建不同的表示,那么比较适合采用建造者模式。 builer: 为创建产品的各个部分,统一抽象接口 Abuilder:具体的建造着类,创建该产品的各个部分,部分A、部分B、部分C director:构造一个使用builer接口的对象 product:表示被构造的复杂对象 一个对象的构建比较复杂,将一个对象的构建和对象的表示进行分离,使得同样的构建过程可以创建不同的表示 #include <QCoreAp..原创 2020-12-15 12:53:32 · 110 阅读 · 0 评论 -
工厂模式
工厂模式的定义:定义一个(创建对象的接口),让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 工厂模式中,产品抽象类Iproduct负责定义产品的共性,实现对产品的抽象定义;工厂抽象类IFactory负责抽象创建产品,也就是抽象工厂,具体如何创建产品由具体的实现工厂类比如AFactory来完成。以上通用模式用的比较多。 该模式的特点是封装性良好,可扩展性好,屏蔽了产品类,是典型的解耦框架。 使用场景:1、需要灵活可扩展的框架时,可以考虑。2、在测试驱动开发的框架下。 工程模式说白了原创 2020-12-14 21:54:51 · 91 阅读 · 0 评论 -
代理模式
#include <QCoreApplication> #include <iostream> using namespace std; class ISellingbooks{ public: virtual void DoSeling() = 0; }; //代理卖书实现虚基类卖书 class ProxySeling:public ISellingbooks{ public: void DoSeling(){ cout<<...原创 2020-12-11 21:16:06 · 120 阅读 · 0 评论 -
适配器模式
适配模式让我想起到了电脑的适配器, 设配器的功能就是将输入220A/5A的输入电源进行转化,成为适应电脑的输入电源18V /1A,适配器模式就是这个转换过程。 如上图在USB接口中接入电源插座B的接口,使之能适应于USB插座,而不改变usb原有的接口,在usb系统中新增adapter类,该类对外接口与usb接口保持一致。 在adapter 中封装了SocketOutput 接口,通关adapter改变电源和电流(变压),使之变得合适USB。 //插座抽象类 class ISocketOut...原创 2020-12-11 16:51:59 · 175 阅读 · 0 评论 -
迭代器模式
迭代器的核心实现是:让容器对应的具体迭代器类中拥有该容器的引用成员变量。在创建迭代器时把容器对象的引用传给迭代器,那么迭代器就可以操作容器元素了。 Iterator的核心功能,就是提供了一种特定的方法,顺序访问一个容器中的各个元素,既不会暴露容器的内部设计细节(容器底层数据结构),又可以让外部代码透明的访问集合内部的所有元素。 #include <QCoreApplication> #include <iostream> typedef int Object; #defi.原创 2020-12-11 12:34:45 · 129 阅读 · 0 评论 -
桥接模式
桥接模式的重点在“解耦”,桥接模式主要是通过聚合和继承行为来让不同的类承担不同的责任。 桥接模式的主要特点是把抽象与行为实现分离出来,从而可以保持各部分的独立性以及对他们的功能扩展。 如上图,比如给车安装发动机,有不同种型号的车和不同种型号的发动机(看成两个不同的集合),中间通过聚合来实现两个集合的连接, 可以实现解耦,不同的车可以安装不同种型号的发动机,不会有耦合。 实现引擎发动机的抽象类engine。 #ifndef ENGINE_H #define ENGINE_H #include &.原创 2020-12-08 22:28:59 · 98 阅读 · 0 评论 -
责任链模式
责任链模式定义如下: Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until a...原创 2018-09-24 20:50:02 · 182 阅读 · 0 评论 -
观察者模式
观察者模式的主要精髓是被观察者拥有观察者的对象(本例中观察者是被观察者的类成员变量),当被观察者有所动作的时候能够调用到观察者的接口通知到它们。这些观察者们可以任意的增加删除,不影响原有的接口,符合开闭原则,即对扩展开放,对修改关闭。 将共有的接口分门别类,抽象出来做成接口模式,包括被观察事件接口,被观察者,观察者接口三个通用接口,因此想要增加和删除这些接口的实例都显得非常的容易。如下是一个实...原创 2019-01-30 15:41:11 · 208 阅读 · 0 评论