设计模式
田小七
这个作者很懒,什么都没留下…
展开
-
1 创建型模式-----简单工厂模式
1.1 模式定义简单工厂模式:将创建不同对象的代码封装到具体产品类中;将创建这些具体产品类的公共代码封装到到抽象产品类中;定义一个工厂类,该类的静态方法可以根据不同参数创建不同的具体产品实例。模式要点:需要什么类型的产品,只需传入一个正确的参数,就可以获得一个对应的实例。1.2 模式结构图1.3 模式角色抽象产品Product:具体产品类的父类,封装了...原创 2019-05-11 08:57:57 · 179 阅读 · 0 评论 -
14 行为型模式-----职责链模式
模式动机(Chain of Responsibility Pattern):对于某个请求,有多个接收者都可能处理,将这样的接收者链接成一个单向链表,根据不同的请求类型决定最终由哪个结点负责处理。不同结点需要维护一个指向下一个结点的链接,该链接可以通过构造结点时传入,也可以通过结点接口指定下一个接收结点。抽象类负责定义公共接口及其默认实现。模式结构图:模式代码:bt_职责...转载 2019-05-12 00:04:52 · 112 阅读 · 0 评论 -
12 结构型模式-----享元模式
模式动机(Flyweight Pattern):顾名思义,享元模式就是运用共享技术解决大量细粒度对象的复用问题。在享元模式中,由工厂负责维护一个享元池(Flyweight Pool),用于存储具有相同内部状态的一些对象。所谓内部状态,是指一个对象的特征,我们把大多数该类对象的不变特征确定为共享特征,将其抽象为一个类放到享元池中,对于可变的部分可以通过外部状态参数传入来解决。这样的话,如果客户要使用...转载 2019-05-12 00:00:09 · 125 阅读 · 0 评论 -
10 结构型模式-----装饰模式
模式动机(Decorator Pattern):我们在给一个类进行功能扩展时,总是通过继承或者复合关系,使得一个类具有其他相关类型的功能,继承本身属于静态关联,派生类比较臃肿,使用者也不能控制增加功能的方式。而使用复合机制,即将一个类的对象作为另一个类的成员,我们可以决定什么时候调用哪种功能,非常方便,这就是装饰模式,即给一个现有的类进行装饰,使其具有我们希望的功能。模式结构图:...转载 2019-05-11 22:34:54 · 96 阅读 · 0 评论 -
9 结构型模式-----组合模式
模式动机(Composite Pattern):将对象组合成树形结构来表示“整体-部分”层次。操作时,使得对部分的操作与对整体的操作具有一致性。模式结构图:典型的Composite结构为:模式代码:bt_组合模式.h:#ifndef CP_H#define CP_H#include <iostream>#include <ve...转载 2019-05-11 15:34:47 · 158 阅读 · 0 评论 -
8 结构型模式-----桥接模式
模式动机:当某个接口可能有多种实现方式时,一般会使用继承来解决。但是继承总是体现出与具体的平台相关,无法很好地进行扩充,此时需要将接口与实现类最大可能地解耦,使其二者都可以独立发展而不受影响,增大系统的灵活性。模式定义(Bridge Pattern):将抽象接口与具体实现分离开来,使得两部分都可以独立变化而不受影响。模式结构图:模式代码:bt_桥接模式.h:#...转载 2019-05-11 15:33:01 · 118 阅读 · 0 评论 -
6 创建型模式-----单例模式
模式动机:对于系统中的某些类而言,确保只有一个实例运行很重要,例如一个系统只能有一个计时器或者ID生成器。模式定义(Singleton Pattern):确保一个类只有一个实例,并且该类自己负责创建它自己的唯一实例,而且还必须可以向系统提供这个实例。模式结构图:模式分析:单例类拥有一个私有构造函数,确保用户无法通过new关键字创建它;模式中包括一个静态工厂方法和一个静态(确保...转载 2019-05-11 12:31:34 · 112 阅读 · 0 评论 -
5 创建型模式-----原型模式
模式动机:在软件系统中,有些对象的创建过程非常复杂,但是又需要频繁创建,这时候需要提供一个原型对象,使用时只需要复制这个原型对象就可以了。模式定义(Prototype Pattern):使用原型实例指定创建对象的类型,然后通过复制原型对象来创建新对象。模式结构图:模式代码:bt_原型模式.h:#ifndef PP_H#define PP_H#include &...转载 2019-05-11 12:12:37 · 100 阅读 · 0 评论 -
4 创建型模式-----建造者模式
模式动机:一个对象由若干部件组成,而组合这些部件的过程比较复杂,因此可以把这个组合工作交给建造者来完成,建造这返回给客户的是一个组装好的对象。模式定义(Builder Pattern):将一个复杂对象的构建与表示分离开来,使得同样的构建过程可以创建不同的表示形式。模式结构图:其中包含抽象建造者Builder、具体建造者ConcreteBuilder、指挥者Directo...转载 2019-05-11 11:03:09 · 107 阅读 · 0 评论 -
3 创建型模式-----抽象工厂模式
模式动机:工厂方法模式一般针对的是一个产品等级结构(如仅生产电视机),而抽象工厂模式针对的是多个产品等级结构(如不仅生产电视机,还生产空调)。模式定义:一个具体工厂可以创建一个产品族的所有产品,又称为Kit模式。模式结构图:模式代码:bt_抽象工厂模式.h:#ifndef AFP_H#define AFP_H#include <iostream>...转载 2019-05-11 09:49:10 · 630 阅读 · 0 评论 -
2 创建型模式-----工厂方法模式
简单工厂模式的不足:加入新产品的同时需要修改工厂类,违背“开闭原则”。模式动机:增加一个抽象工厂类,再定义具体工厂类来生产具体的产品,增加新产品时只需要添加产品类和对应的具体工厂类即可。由于我们是对抽象工厂进行编程,因此可以在不修改抽象工厂的前提下增加新产品。模式定义:工厂方法模式(Factory Method Pattern)又称工厂模式、虚构造器。该模式下,抽象工厂负责创建产品的公共接...原创 2019-05-11 09:13:40 · 9499 阅读 · 0 评论 -
设计者模式学习资料
https://www.cnblogs.com/benxintuzi/p/4580312.html原创 2019-05-12 13:33:49 · 113 阅读 · 0 评论