
设计模式
binger-csdn
乐于总结
展开
-
设计模式之工厂方法
一、工厂方法模式中的角色与职责抽象工厂(Abstract Factory)角色:工厂方法模式的核心,任何工厂类都必须实现这个接口。工厂(Concrete Factory)角色:具体工厂类是抽象工厂的一个实现,负责实例化产品对象。抽象产品(Abstract Product)角色:工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。具体产品(Concrete Product)角...原创 2019-07-08 09:22:55 · 153 阅读 · 0 评论 -
设计模式之模板方法模式
一、模板方法模式的定义定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤二、模板方法的角色与职责AbstractClass(抽象类):在抽象类中定义了一系列基本操作,这些基本操作可以是具体的,也可以是抽象的,每一个基本操作对应算法的一个步骤,在其子类中可以重定义或实现这些步骤。同时,在抽象类中实现了一个模板方法...原创 2019-07-22 14:50:12 · 160 阅读 · 0 评论 -
设计模式之策略模式
一、策略模式的定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化二、策略模式中的角色和职责Context(环境类):环境类是使用算法的角色,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略Strategy(抽象策略类):它为所支持的算法声明了...原创 2019-07-25 14:53:16 · 216 阅读 · 0 评论 -
设计模式之适配器模式
一、适配器模式的定义将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作二、适配器的角色与职责Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类Adapter (适配器类) : 适配器可以调用另一个接口, 作为一个转换器, 对 Adaptee和Target进行适配,适配器类是适配器模式的核心...原创 2019-07-19 14:14:12 · 163 阅读 · 0 评论 -
设计模式之命令模式
一、命令模式中的角色与职责Command(抽象命令类):抽象命令类一般是一个抽象类或接口,在其中声明了用于执行请求的 execute()等方法,通过这些方法可以调用请求接收者的相关操作ConcreteCommand(具体命令类):具体命令类是抽象命令类的子类,实现了在抽象命令类中声明的方法,它对应具体的接收者对象,将接收者对象的动作绑定其中。在实现 execute()方法时,将调用接收者对...原创 2019-07-23 16:10:09 · 230 阅读 · 0 评论 -
设计模式之装饰模式
一、装饰模式的定义装饰模式就是把要附加的功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择的、按顺序的使用装饰功能包装对象二、装饰模式的角色与职责Component(抽象构件):它是具体构件和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的方式处理未被装饰的对象以及装饰之后的对象,实现客户端的透明操作。Conc...原创 2019-07-16 15:58:24 · 128 阅读 · 0 评论 -
设计模式之代理模式
一、代理模式的定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用二、模式中的角色和职责subject(抽象主题角色):真实主题与代理主题的共同接口RealSubject(真实主题角色):定义了代理角色所代表的真实对象Proxy(代理主题角色):含有对真实主题角色的引用,代理角色...原创 2019-07-12 09:10:17 · 131 阅读 · 0 评论 -
设计模式之外观模式
一、外观模式中的角色与职责Facade(外观角色):为调用方, 定义简单的调用接口SubSystem(子系统角色):功能提供者。指提供功能的类群(模块或子系统)二、适用场景(1) 复杂系统需要简单入口使用(2) 客户端程序与多个子系统之间存在很大的依赖性三、示例代码#define _CRT_SECURE_NO_WARNINGS#include <iostream...原创 2019-07-18 16:33:25 · 154 阅读 · 0 评论 -
设计模式之简单工厂
一、模式中的角色与职责工厂(Factory)角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。抽象产品(AbstractProduct)角色:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。具体产品(Concrete Product)角色:简单工厂模式所创建的具体实例对象。二、适用场景1.、工厂类负责创...原创 2019-07-05 14:46:01 · 170 阅读 · 0 评论 -
设计模式中的主要原则
一、原则的目的高内聚,低耦合二、原则的主要分类1、单于职责原则:类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。2、开闭原则:类的改动是通过增加代码进行的,而不是修改源代码3、迪米特法则:一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。例如在一个程序中,各个模块之间相互调用时,通常会提供一个统一的接口来实现。这样其他模块...原创 2019-07-05 10:33:38 · 176 阅读 · 0 评论 -
设计模式之单例模式
一、单例模式中的角色和职责Singleton(单例):在单例类的内部实现只生成一个实例,同时它提供一个静态的 getInstance()工厂方法,让客户可以访问它的唯一实例;为了防止在外部对其实例化,将其构造函数设计为私有;在单例类内部定义了一个 Singleton类型的静态对象,作为外部共享的唯一实例如何构建单例:一是单例模式的类只提供私有的构造函数二是类定义中含有一个该类的静态...原创 2019-07-10 10:54:16 · 228 阅读 · 0 评论 -
设计模式之抽象工厂
一、模式中的角色与职责抽象工厂(Abstract Factory)角色:它声明了一组用于创建一族产品的方法,每一个方法对应一种产品。具体工厂(Concrete Factory)角色:它实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。抽象产品(Abstract Product)角色:它为每种产品声明接口,在抽象产品中声明...原创 2019-07-09 10:09:30 · 161 阅读 · 0 评论 -
设计模式之观察者模式
一、观察者模式的定义观察者模式是用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间可以没有任何相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展二、观察者模式中的角色与职责Subject(被观察者或目标,抽...原创 2019-07-26 14:53:14 · 287 阅读 · 0 评论