随笔分类 - [22]【设计模式】
摘要:设计模式系列随笔目录 1、创建型(6种) (1)单例模式 (2)简单工厂模式 (3)工厂方法模式 (4)抽象工厂模式 (5)建造者模式 (6)原型模式 2、结构型(7种) (1)适配器模式 (2)代理模式 (3)桥接模式 (4)装饰模式 (5)外观模式 (6)享元模式 (7)组合模式 3、行为型(1
阅读全文
摘要:【1】什么是访问者模式? 今天学习访问者模式,访问者模式是A对象访问B对象的一种模式。非也。 那么,何谓访问者模式呢?真难理解!因为这个名字就TMD超晦涩,让人听不懂,或许只是此名称本身有且仅有的一个抽象意义而已。 何谓抽象意义呢?如果你理解了《类的概念》大概你才会有所参透。 我一直理解:抽象是多态
阅读全文
摘要:【1】什么是解释器模式? 解释器模式:拟定一种 “语言”,定义该语言文法的一种表示,并定义一种解释器,这个解释器使用该表示文法来解释语言中的句子。 【2】解释器模式代码示例: (1)代码示例1: 1 #include <iostream> 2 #include <list> 3 #include <
阅读全文
摘要:【1】什么是享元模式? 享元模式: 【2】享元模式的代码示例: 代码示例1: 1 #include <iostream> 2 #include <string> 3 #include <map> 4 using namespace std; 5 6 class Flyweight 7 { 8 pub
阅读全文
摘要:【1】什么是中介者模式? 中介者模式: 【2】中介者模式代码示例: 代码示例: 1 #include<iostream> 2 #include <string> 3 using namespace std; 4 5 class Mediator; 6 class ConcreteColleague1
阅读全文
摘要:【1】什么是责任链模式? 责任链模式: 【2】责任链模式的代码示例: 代码示例: 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 class Request 6 { 7 public: 8 string reque
阅读全文
摘要:【1】什么是命令模式? 命令模式: 【2】命令模式的代码示例: 代码示例: 1 #if 0 2 3 #include <iostream> 4 #include <string> 5 using namespace std; 6 7 /* 8 * 运算基类 9 */ 10 class Operati
阅读全文
摘要:【1】什么是桥接模式? 【2】桥接模式的代码示例 示例代码: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class HandsetSoft 6 { 7 public: 8 virtual void run
阅读全文
摘要:【1】什么是单例模式? 单例,即所谓,单个实例。换句话说,类的对象也需要“计划生育”政策。 单例模式即在应用程序中一个类有且仅有一个实例的一种设计模式。 单例模式保证系统中一个类只有一个实例且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 结合以上需求、编程经验,不难总结单例模式要点有
阅读全文
摘要:【1】什么是迭代器模式? 【2】迭代器模式代码示例: 代码示例: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class Iterator; 6 7 class Aggregate 8 { 9 public
阅读全文
摘要:【1】什么是组合模式? 将对象组合成树形结构以表示“部分整体”的层次结构。 组合模式使得用户对单个对象和组合对象的使用具有一致性。 【2】组合模式代码示例: 代码示例: 1 #include <iostream> 2 #include <vector> 3 #include <string> 4 u
阅读全文
摘要:【1】什么是备忘录模式? 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 这样就可以将该对象恢复到原先保存的状态。 【2】备忘录模式的代码示例: 代码示例如下: 1 #include <iostream> 2 #include <string> 3 #include <
阅读全文
摘要:【1】什么是适配器模式? 将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 【2】适配器模式的代码示例: 代码示例如下1: 1 #include <iostream> 2 #include <string> 3 using
阅读全文
摘要:【1】什么是状态模式? 不同的状态,不同的行为。或者说,每个状态有着相应的行为。 【2】状态模式的代码示例: 代码示例: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class Work; 6 class
阅读全文
摘要:【1】什么是抽象工厂模式? 原文:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 所有专业书上都是这句话:“为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。” 逐级分解一下: 1、为创建一组相关的对象提供一个接口,而且无需指定他们的具体类。 2、为创建一
阅读全文
摘要:【1】什么是观察者模式? 观察者模式,定义一种一对多的依赖关系,多个观察者对象同时监听某一个主题对象。 当这个主题对象状态上发生变化时,会通知所有观察者对象,他们能够自动更新自己,随主题对象状态改变做出对应的行为表现。 【2】观察者模式代码示例: 代码示例如下: 【3】观察者模式的优缺点 观察者模式
阅读全文
摘要:【1】什么是建造者模式? 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 【2】建造者模式代码示例: 代码示例1: 1 #include <string> 2 #include <iostream> 3 #include <vector> 4 using namespac
阅读全文
摘要:【1】什么是外观模式? 为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。 【2】外观模式的代码示例: 代码示例: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class Sub1
阅读全文
摘要:【1】什么是模板方法模式? 又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 【2】模板方法模式代码示例: 代码示例1: 1 #include <iostream> 2 #include <stri
阅读全文
摘要:【1】什么是原型模式? 原型模式即复制,或者克隆模式。 【2】原型模式代码示例: 代码示例1: 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class Prototype 6 { 7 private: 8
阅读全文