行为型:命令模式

行为型:命令模式

概述 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。 命令模式可以...

行为型:策略模式

行为型:策略模式

概述 完成一项任务或事情,往往会有多种方法,而每一个方法可以称之为一个策略。而策略的选择,往往需要根据实际的环境或者条件的不同而做出不同的选择。 定义 定义一系列算法,将每一个算法封装起来,并让它们可以相互代替。 策略模式让算法独立于使用它的客户而变化。 角色 Context: ...

创建型:建造者模式

创建型:建造者模式

概述 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模...

创建型:抽象工厂模式

创建型:抽象工厂模式

引入 在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。 抽象工厂模式与工厂方法模式最大的区别在...

行为型:模板方法模式

行为型:模板方法模式

概述 父类抽象出子类共有的方法,并且自己实现他 子类实现各自不同的业务 父类实现的方法按照一定的逻辑调用抽象方法 为了反之子类重写父类实现的方法父类定义为final方法 定义 一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方...

行为型:解释器模式

行为型:解释器模式

概述 解释器这个名词想必大家都不会陌生,比如编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。诸如此类的例子也有很多,比如编译器、正则表达式等等。 如果一种特定类型的问题发生的频率足够高,那么可能就...

C++_PIMPL 模式

C++_PIMPL 模式

概述 PIMPL(Pointer to Implementation)是 C++ 中一个强大的设计模式,用于隐藏实现细节、减少编译依赖和提高接口稳定性 核心思想 分离接口与实现 公共头文件只声明接口 私有实现在单独的类中封装 公共类仅持有私有实现的指针 编译防火墙 实现 公共接口...

行为型:中介者模式

行为型:中介者模式

概述 当用户对象之间存在很强的关联性时,会有以下问题: 系统结构负责 对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理。 对象的可重用性差 由于一个对象和其他对象具有很强的关联,若没有其他对象的支持,一个对象很难被另一个...

行为型:责任链模式

行为型:责任链模式

概述 一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这增加了难度。 定...

结构型:代理模式

结构型:代理模式

简述 在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到 中介的作用,并且可以通过代理对象去掉客户不能看到 的内容和服务或者添加客户需要的额外服务。 定义 给某一个对象提供一个代理,...

扫一扫二维码分享