![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++设计模式
文章平均质量分 81
zylgbin
不知死,焉知生
展开
-
mermaid
mermaid原创 2022-07-17 15:42:46 · 434 阅读 · 0 评论 -
进程间的通信
进程通信3.namepipe4.email slot原创 2022-06-05 15:00:11 · 548 阅读 · 0 评论 -
select网络模型的使用
server//SelectMain.cpp#include "log/LogX.h"#include "SelectModel.h"int main() { SelectModel s; s.startRunLisentServer(); return 0;}//SelectModel.h#pragma once#include <WinSock2.h>#include <vector>#include<string>#inclu..原创 2022-02-22 22:19:38 · 411 阅读 · 0 评论 -
享元模式
享元模式 享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。优缺点 优点: 可以极大减少内存中对象的数量,使得相同或相似对象在内存中只保存一份,从而可以节约系统资源,提高系统性能。 享元模式的外部状态相对独立,而且不会影响其内部状态,...翻译 2018-06-18 14:24:00 · 113 阅读 · 0 评论 -
原型模式
原型模式优缺点优点:如果创建新的对象比较复杂,可以利用原型模式简化对象的创建过程,同时也能够提高效率。简化对象的创建,无需理会创建过程。可以在程序运行时(对象属性发生了变化)获得一份内容相同的实例,他们之间不会相互干扰。缺点:在实现深拷贝时可能需要比较复杂的代码需要为每一个类配备一个克隆方法,而且该克隆方法需要对类的功能进行通盘考虑,这对全新的类来说不是很难,但对已...翻译 2018-06-18 14:24:28 · 107 阅读 · 0 评论 -
职责连模式
C++ 职责链模式简述 职责链模式(Chain of Responsibility Pattern)使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。Handler(抽象处理者):定义了处理请求所需的接口。 ConcreteHandler(具体处理者):处理自己负责的请求,如果...翻译 2018-06-18 14:24:56 · 164 阅读 · 0 评论 -
中介模式
中介者模式 中介者模式(Mediator Pattern)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者是对象的通信中心。当一个对象需要与另一个对象通信时,它不会直接调用另一个对象。相反,它会调用中介者对象,其主要职责是将消息路由到目标对象。它允许开发人员不必管理对象之间的链接。优缺点...翻译 2018-06-18 14:25:53 · 136 阅读 · 0 评论 -
装饰者模式
装饰者模式优缺点优点:Decorator 模式与继承关系的目的都是要扩展对象的功能,但是 Decorator 可以提供比继承更多的灵活性。 通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合。 缺点:这种比继承更加灵活机动的特性,也同时意味着更加多的复杂性。 装饰模式会导致设计中出现许多小类,如果过度使用,会使程序变得很复杂。 装饰模式是...翻译 2018-06-18 14:26:31 · 107 阅读 · 0 评论 -
状态模式
状态模式 状态模式(State Pattern)是行为设计模式之一。当对象根据其内部状态改变其行为时,将使用状态设计模式。优缺点优点: 实现多态行为的好处是显而易见的,并且很容易添加状态来支持额外的行为。 在状态模式中,对象的行为是其状态中函数的结果,并且在运行时根据状态改变行为,这就消除了对 switch/case 或 if/else 条件逻辑的依赖。...翻译 2018-06-18 14:27:14 · 124 阅读 · 0 评论 -
组合模式
组合模式组合模式(Composite Pattern)组合多个对象形成树形结构以表示具有“整体-部分”关系的层次结构。组合模式对单个对象(即:叶子构件)和组合对象(即:容器构件)的使用具有一致性,组合模式又被称为“整体-部分”(Part-Whole)模式,属于对象结构型模式。根据 Component 的定义形式,可将组合模式分为两种形式:透明组合模式 安全组合模式 透明组合模式...翻译 2018-06-19 17:38:40 · 432 阅读 · 0 评论 -
外观模式
外观模式外观模式(Facade Pattern)又称为门面模式,属于结构型模式。Façade 为子系统中的一组接口提供了一个统一的高层接口,该接口使得子系统更加容易使用。结构Facade(外观):模式的核心,被 Client 调用,知晓相关子系统的功能和责任。在正常情况下,它将所有从 Client 发来的请求委派到相应的子系统去,让子系统处理。 SubSystem(子系统):可以...翻译 2018-06-18 14:23:29 · 210 阅读 · 0 评论 -
适配器模式
适配器模式Target(目标接口):所期望得到的接口 Adaptee(适配者):需要适配的类 Adapter(适配器):该模式的核心,具有将 Adaptee 包装为 Target 的职责类适配器和对象适配器从实现层面上划分,适配器模式分为两种:类适配器(多继承方式) 对象适配器(对象组合方式) 那么,实际应用中如何在二者之间进行选择?类适配器包含以下特点:由于 ...翻译 2018-06-18 14:22:54 · 109 阅读 · 0 评论 -
策略模式
策略模式 策略模式(Strategy Pattern)定义一系列算法,把它们一个个封装起来,并且使它们可以互相替换。Strategy 可以使算法独立于使用算法的客户端。优缺点优点: 各自使用封装的算法,可以很容易地引入新的算法来满足相同的接口。 由于实现的是同一个接口,所以策略之间可以自由切换。 Strategy 使客户端能够选择所需的算法,而无需...翻译 2018-06-17 17:25:03 · 77 阅读 · 0 评论 -
代理模式
代理模式 代理模式(Proxy Pattern)为其他对象提供了一种代理,以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。优缺点优点: 代理模式能将代理对象与真正被调用的对象分离,在一定程度上降低了系统的耦合度。 在客户端和目标对象之间,代理起到一个中介作用,这样可以保护目标...翻译 2018-06-17 17:25:45 · 113 阅读 · 0 评论 -
访问者模式
访问者模式简述访问者模式(Visitor Pattern)表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。Visitor PatternVistor(访问者):为对象结构中每一个 ConcreteElement 声明一个 visit() 操作,从这个操作的名称或参数类型可以清楚知道需要访问的具体元素的类型。 Conc...翻译 2018-06-17 17:26:49 · 190 阅读 · 0 评论 -
抽象工厂模式
c++抽象工厂模式优点:封装了产品的创建,使得不需要知道具体是哪种产品,只需要知道是哪个工厂即可。可以支持不同类型的产品,使得模式灵活性更强。可以非常方便的使用一族中的不同类型的产品。缺点:结构过于臃肿,如果产品类型较多或产品族较多,会非常难于管理。每次如果添加一组产品,那么所有的工厂类都必须添加一个方法,这样违背了开放-封闭原则。所以一般适用于产品组合产品族变化不大的情况...翻译 2018-06-17 17:27:20 · 115 阅读 · 0 评论 -
观察者模式
观察者模式 观察者模式(Observer Pattern),定义了对象间的一对多的依赖关系,让多个观察者对象同时监听某一个主题对象(被观察者)。当主题对象的状态发生更改时,会通知所有观察者,让它们能够自动更新。背景 很多时候,在应用程序的一部分发生更改时,需要同时更新应用程序的其他部分。有一种方法是:让接收者反复检查发送者来进行更新,但是这种方法存在两个主要问题: ...翻译 2018-06-17 17:28:11 · 101 阅读 · 0 评论 -
建造者模式
建造者模式优点:建造者独立,易于扩展 便于控制细节风险缺点:产品必须有共同点,范围有限制 如果内部变化复杂,将会有很多的建造类适用场景需要生成的对象具有复杂的内部结构 需要生成的对象内部属性本身相互依赖 (笔记本电脑具有必须的硬件设备,但是每个硬件设备是不一样的,建造者模式相当于用不同的硬件去组装电脑)代码实现创建产品““ // pro...翻译 2018-06-17 17:28:51 · 117 阅读 · 0 评论 -
命令模式
命令模式 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传递给调用对象。调用对象寻找可以处理该命令的合适对象,并把该命令传给相应的对象,该对象执行命令。背景 在应用程序中,经常需要对相同的数据执行多个操作。可以这样简单的理解:用户有一些数据,并且界面提供了很多选项,他可以对该数据进行其中的某些操作...翻译 2018-06-17 17:29:18 · 132 阅读 · 0 评论 -
模板方法模式
模板方法模式 模版方法模式(Template Method Pattern)定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。优缺点优点: 在父类中形式化地定义一个算法,而由其子类实现细节的处理,在子类实现详细的处理算法时并不会改变算法中步骤的执行次序。 模板方法模式是一种代码复用...翻译 2018-06-18 14:21:26 · 109 阅读 · 0 评论 -
桥接模式
桥接模式桥接模式(Bridge Pattern)是将抽象部分与它的实现部分分离,使它们都可以独立地变化。优缺点优点:分离抽象和实现部分。桥接模式使用“对象间的关联关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。所谓抽象和实现沿着各自维度的变化,也就是说抽象和实现不再在同一个继承层次结构中,而是“子类化”它们,使它们各自都具有自己的子类,以便...翻译 2018-06-18 14:22:16 · 127 阅读 · 0 评论 -
备忘录模式
备忘录模式 备忘录模式(Memento Pattern)在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。优缺点优点:> 提供了一种状态恢复机制,使用户能够方便地回到某个历史的状态。 实现了信息的封装,使得用户不需要关心状态的保存细节。缺点:> 如果 Originato...翻译 2018-06-17 17:24:22 · 115 阅读 · 0 评论