![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
码上看世界
笔尖记录成长,点滴汇聚力量!
展开
-
proactor(前驱)模式
前驱模式(Proactor)是一种事件处理的软件设计模式,其中长时间运行的活动在异步部分中运行。当异步部分完成后调用相应的处理程序。原创 2019-12-06 21:43:22 · 1325 阅读 · 0 评论 -
接口隔离原则
接口隔离原则 接口隔离原则拆分庞大臃肿的接口成更小和更具体的接口,同时这些接口不相互依赖,保持隔离。原创 2019-12-04 20:14:15 · 98 阅读 · 0 评论 -
迪米特法则
迪米特法则 迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 迪米特法则首先强调的前提就是在类的结构设计上,每一个类都应当尽量降低成员的访问权限。它的根本思想是强调类之间的松耦合。 类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成波及。 迪米特法则又被称为...原创 2019-12-04 20:13:41 · 89 阅读 · 0 评论 -
里氏代换原则
里氏代换原则 在面向对象的程序设计中, 里氏代换原则是对子类类型的特别定义。可以描述为,派生类对象可以代替其基类对象,其实就是说派生类能以基类的身份出现。 在具体的程序设计中,应该解释为,基类指针或引用能够在不进行显式类型转换的情况下指向派生类对象,然而这时候的基类指针或引用只能调用派生类重写于基类的方法,简单说,基类指针或引用只能调用基类方法,但是由于这个基类指针或引用是指向派生类对象,所...原创 2019-12-04 20:13:08 · 102 阅读 · 0 评论 -
单一职责原则
单一职责原则 在面向对象编程领域中, 单一职责原则(Single reponsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的服务应该严密的和该功能平行。准确的解释是,就一个类而言,应该仅有一个引起它变化的原因。 这个术语由罗伯特·C·马丁在他的《敏捷软件开发,原则,模式和实践》一书中的一篇名为“面向对象设计原则”的文章中给出...原创 2019-12-04 20:12:38 · 104 阅读 · 0 评论 -
开放封闭原则
开放封闭原则 在面向对象领域中,开放封闭原则规定软件中的对象应该对于扩展是开放的,但对于修改是封闭的,这意味着一个实体是允许在不改变它的源代码的前提下改变它的行为。 在《面向对象软件构造》一书中指出,一个类的实现只应该因错误而修改,新的或者改变的特性应该通过新建不同的类实现。新建的类可以通过继承的方式重用原类的代码。衍生的子类可以或不可以拥有和原类相同的接口。这里的实现继承。具体实现可以通过...原创 2019-12-04 20:11:58 · 130 阅读 · 0 评论 -
依赖反转原则
依赖反转原则 在面向对象编程领域中,依赖反转原则是一种特定解耦形式,它使得高层次的模块不依赖低层次的模块的实现细节,两者都应该依赖于抽象接口,而且抽象接口不应该依赖于具体实现,具体实现应该依赖于抽象的接口。 依赖反转原则可以通过抽象使各个类或模块的实现彼此独立,互不影响,实现模块间的松耦合,这也是有利于并行开发。 在里氏代换原则中,简单说子类必须能够替换他们的父类类型,也就是说,子类继承了父...原创 2019-12-04 20:11:27 · 1391 阅读 · 0 评论 -
简单工厂模式
简单工厂模式 简单工厂模式,简单的理解是,一个工厂根据订单生产同类型的不同产品。 同类型的不同产品可以理解为是使用同一个模具生产的,但后续工艺不同的产品。在程序中理解就是这些具体的产品都是继承于一个抽象基类。而工厂(工厂类)则是提供了一个生产不同产品(创建不同对象)的方法(函数),但是这个方法需要一个输入参数,也就是所谓的订单,根据这个订单(输入参数),生产产品(创建对象)。 #includ...原创 2019-12-04 20:10:41 · 80 阅读 · 0 评论 -
策略模式
策略模式定义了一个算法家族,分别封装了每一个算法,并且它们可以相互替代。原创 2019-12-04 20:09:54 · 83 阅读 · 0 评论 -
装饰模式
装饰模式,动态的向一个对象这种添加新的功能,装饰模式相比于生成子类更为灵活原创 2019-12-04 20:09:29 · 111 阅读 · 0 评论 -
代理模式
代理模式,为其他对象提供一种代理以控制对这个对象的访问原创 2019-12-04 20:08:54 · 89 阅读 · 0 评论 -
工厂方法模式
工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。原创 2019-12-04 20:08:14 · 84 阅读 · 0 评论 -
原型模式
原型模式,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。原创 2019-12-04 20:07:00 · 108 阅读 · 1 评论 -
模板方法模式
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。原创 2019-12-04 20:06:23 · 83 阅读 · 0 评论 -
外观模式
外观模式,简单说就是将多个子类接口统一为一个高层接口,使得接口更容易使用和维护。原创 2019-12-04 20:05:48 · 85 阅读 · 0 评论 -
建造者模式(生成器模式)
建造者模式(生成器模式),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。原创 2019-12-04 20:05:16 · 100 阅读 · 0 评论 -
观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象。这个主题对象在状态发生变化时可以通知所有的观察者对象。原创 2019-12-04 20:04:08 · 86 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式 抽象工厂模式提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 AbstractFactory类应该包含所有产品创建的抽象方法,AbstractProductA(B)类应该包含该品类产品共同的抽象方法,同一品类直接可以相互替换,这也是抽象工厂模式的一大优点,在具体产品变更时,程序改动变得很小。 #include <iostream> #incl...原创 2019-12-04 20:03:10 · 81 阅读 · 0 评论 -
适配器模式
适配器模式,将一些接口转换成我们所需要的另外的一些接口。它使得原来由于接口不兼容而不能一起工作的那些类能够一起工作。原创 2019-12-04 20:02:39 · 77 阅读 · 0 评论 -
设计模式——工厂模式
情景模拟:现在有两家商场A和B,他们都需要采购不同类型的服装,A商场采取的做法是,从专门生产某一类型服装的厂家采购那一类型的服装,那么A商场就需要从不同的厂家采购服装;B商场采取的做法是,将采购清单给一个生产各种类型的厂家,厂家直接根据清单生产B商场所需要的服装。原创 2018-10-10 08:16:37 · 142 阅读 · 0 评论