# design pattern **Repository Path**: daniel-du/design-pattern ## Basic Information - **Project Name**: design pattern - **Description**: 使用C++实现《大话设计模式》中的各种设计模式 - **Primary Language**: C++ - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-16 - **Last Updated**: 2022-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 本文件主要参照《大话设计模式》的内容,实现了其中的全部的设计模式 一个设计模式尽量写在同一个cc文件内部,编译单个文件,"make fileName",将fileName替换为文件名(不带后缀); 在windows下,使用mingw32编译,使用命令"mingw32-make fileName", 编译所有文件使用make或者mingw32-make命令; 如果无法写在一个文件中,会单独创建一个文件夹,编译方式直接使用:"make"或者"mingw32-make" 在windows下使用vscode执行程序,可能会有乱码的问题,解决方法在powershell中输入:chcp 65001 C++标准:C++11 由于C++容器中,都带有自己的迭代器,对象内的大多数集合都可以使用C++的STL容器进行存储,因此没有实现迭代器模式; 设计模式之八大原则: 1.依赖倒转原则,抽象不依赖于过程,而过程应该依赖于抽象; 2.开放封闭原则,对扩展开放,对修改封闭; 3.里氏代换原则,所有的父类的接口都可以用其子类进行替换; 4.单一职责原则,就一个类而言,应该只有一个引起其变化的原因; 设计模式----------文件位置 创建型(creational)模式,主要解决对象创建的工作; 结构型(structual)模式,通过类继承和对象组合获得灵活的结构; 行为型(behavioral)模式,通过类继承和对象组合来划分类和对象的职责; 简单工厂模式------sample_factory.cc 建造者模式--------builder.cc 观察者模式--------observer.cc 代理模式----------proxy.cc 原型模式----------prototype.cc 抽象工厂模式------abstractFactory.cc 工厂方模式--------factory_method.cc 策略模式----------strategy.cc 门面模式----------facade.cc 装饰模式----------decoration.cc 状态模式----------state 适配器模式--------adapter.cc 备忘录模式--------memento 组合模式----------composite.cc 迭代器模式--------无 单例模式----------singleton.cc 桥接模式----------bridge.cc 命令模式----------command.cc 责任链模式--------responsibility.cc 中介者模式--------mediator 享元模式----------flyweight.cc 解释器模式--------interpreter.cc 访问者模式--------