进步始于交流
收获源于分享

标签:设计模式

C/C++

C++设计模式-状态模式

Techie亮阅读(307)评论(0)

介绍 State——抽象状态角色 接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换。 ConcreteState——具体状态角色 每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理,通俗地说,就是本状态下要做的事...

C/C++

C++设计模式-访问者模式

Techie亮阅读(300)评论(0)

介绍 Visitor——抽象访问者 抽象类或者接口, 声明访问者可以访问哪些元素, 具体到程序中就是visit方法的参数定义哪些对象是可以被访问的。 ConcreteVisitor——具体访问者 它影响访问者访问到一个类后该怎么干, 要做什...

C/C++

C++设计模式-备忘录模式

Techie亮阅读(215)评论(0)

介绍 Originator发起人角色 记录当前时刻的内部状态, 负责定义哪些属于备份范围的状态, 负责创建和恢复备忘录数据。 Memento备忘录角色 负责存储Originator发起人对象的内部状态, 在需要的时候提供发起人需要的内部状态...

C/C++

C++设计模式-门面模式

Techie亮阅读(314)评论(0)

介绍 Facade门面角色 客户端可以调用这个角色的方法。 此角色知晓子系统的所有功能和责任。 一般情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去, 也就说该角色没有实际的业务逻辑, 只是一个委托类。 subsystem子系统...

C/C++

C++设计模式-观察者模式

Techie亮阅读(343)评论(0)

介绍 Subject被观察者 定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。它一般是抽象类或者是实现类,仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者。 Observer观察者 观察者接收到消息后,即进行upda...

C/C++

C++设计模式-组合模式

Techie亮阅读(273)评论(0)

介绍 Component抽象构件角色 定义参加组合对象的共有方法和属性, 可以定义一些默认的行为或属性。 Leaf叶子构件 叶子对象, 其下再也没有其他的分支, 也就是遍历的最小单位。 Composite树枝构件 树枝对象, 它的作用是组合...

C/C++

C++设计模式-适配器模式

Techie亮阅读(246)评论(0)

介绍 适配器模式就是把一个接口或类转换成其他的接口或类。 Target目标角色 该角色定义把其他类转换为何种接口,也就是我们的期望接口。 Adaptee源角色 它是已经存在的、 运行良好的类或对象。 Adapter适配器角色 适配器模式的核...

C/C++

C++设计模式-策略模式

Techie亮阅读(319)评论(0)

介绍 Context封装角色 也叫做上下文角色, 起承上启下封装作用, 屏蔽高层模块对策略、 算法的直接访问,封装可能存在的变化。 Strategy抽象策略角色 策略、 算法家族的抽象, 通常为接口, 定义每个策略或算法必须具有的方法和属性...

C/C++

C++设计模式-装饰模式

Techie亮阅读(280)评论(0)

介绍 Component抽象构件 Component是一个接口或者是抽象类, 就是定义我们最核心的对象, 也就是最原始的对象, 如上面的成绩单。 ConcreteComponent 具体构件 ConcreteComponent是最核心、 最...

C/C++

C++设计模式-责任链模式

Techie亮阅读(302)评论(0)

介绍 抽象处理者 Handler 定义一个请求的处理方法handleMessage,唯一对外开放的方法;定义一个链的编排方法setNext,设置下一个处理者;定义了具体的请求者必须实现的两个方法:定义自己能够处理的级别getHandlerL...

C/C++

C++设计模式-命令模式

Techie亮阅读(301)评论(0)

介绍 Receive接收者角色 该角色就是干活的角色, 命令传递到这里是应该被执行的。作为抽象类,定义一个可接受消息的抽象类,从而保证多个不同的具体角色均可接受命令 Command命令角色 需要执行的所有命令都在这里声明。定义抽象类一个和一...

C/C++

C++设计模式-中介者模式

Techie亮阅读(278)评论(0)

介绍 Mediator 抽象中介者角色 抽象中介者角色定义统一的接口, 用于各同事角色之间的通信。 Concrete Mediator 具体中介者角色 具体中介者角色通过协调各同事角色实现协作行为, 因此它必须依赖于各个同事角色。 Coll...

C/C++

C++设计模式-代理模式

Techie亮阅读(324)评论(0)

介绍 通过代理模式可以在原有业务逻辑外增加一定的约束,比如排序、范围限制等等,无论具体主体还是代理主体都实现抽象主题 Subject抽象主题角色 抽象主题类可以是抽象类也可以是接口, 是一个最普通的业务类型定义, 无特殊要求。 RealSu...

C/C++

C++设计模式-原型模式

Techie亮阅读(305)评论(0)

介绍 原型模式的核心是一个clone方法,通过该方法进行对象的拷贝 。 优点: 性能优良 ; 逃避构造函数的约束 缺点:每个类都要重写有clone方法,对于以后的类需要全面的考虑所有成员的拷贝 应用: 资源优化场景 、 性能和安全要求的场景...

C/C++

C++设计模式-建造者模式

Techie亮阅读(338)评论(0)

介绍 建造者模式中, 有如下4个角色: Product产品类 通常是实现了模板方法模式, 也就是有模板方法和基本方法, 这个参考第10章的模板方法模式。 例子中的BenzModel和BMWModel就属于产品类。 Builder抽象建造者 ...

C/C++

C++设计模式-模板方法模式

Techie亮阅读(277)评论(0)

介绍 由抽象模板和具体模板构成,抽象模板分为两类 基本方法:基本操作,有子类实现的方法,在模板方法中被调用 模板方法:可以由一个或多个,是一个具体的方法,也就是一个框架,实现对基本方法的掉队,完成固定的逻辑。为了防止恶意的操作一般模板方法都...

C/C++

C++设计模式-工厂方法模式/抽象工厂模式

Techie亮阅读(537)评论(0)

介绍 抽象工厂模式主要有四个关键元素: 抽象产品(Product):负责定义产品的共性,实现对事物最抽象的定义。 具体产品(ConcreteProduct):具体产品可以由多个。 抽象工厂(Factory):工厂类必须实现这个接口,负责定义...

C/C++

C++设计模式-单例模式

Techie亮阅读(677)评论(1)

介绍 几个重点: 构造函数为private 提供一个获取单例对象指针的函数 一个静态指针成员存储单例对象 注意: 获取单例对象也可以获取对象引用,但要注意拷贝构造函数和赋值运算符 如果有多线程访问单例,需要注意线程同步 范例 源码GitHu...

C/C++

C++设计模式

Techie亮阅读(749)评论(0)

最近开始看设计模式之禅,之前看过一遍可惜没有学以致用,这次边看边整理 六大设计原则 单一职责原则(Single Responsibility Principle) There should never be more than one re...