设计模式的笔记
责任链【行为型】中实现的重点是 一个message,要log,但是每一个都要处理完,处理完给下一个logger,类似于流水线。
不同于解释器【行为型】,解释器没有这些关联性
解释器【行为型】 用作表达式,语法解析时需要用到解释器设计模式
代理模式【结构型】:两个子类继承同一个父类,一个用来实现具体功能,另一个用来访问另外一个子类,来实现具体功能
访问者模式Visitor【行为型】:对于某种对象出现频繁发生改变,需要一个类来访问某个对象,此时用到了visitor设计模式。
观察者【行为型】:对象改变时,触发事件。
装饰器模式【结构型】: 保持原有接口,并往里添加新功能。
比如: Shape , 他可以draw. Shape子类比如三角形,正方形,等可以具体的draw,然后增加属性,颜色,纹理。
命令模式【行为型】: CMD, 客户端核服务器之间的通讯, 常规撤销核重做,遥控器和电视机。
原型模式【创建型】: 当前对象生成相同类型的一个对象,实现方式是clone
桥接模式【结构型】: 桥接模式不同于装饰器模式,他的父类是一个抽象类。
过滤器模式【结构型】: 多个类继承一个父类,但他只用来过滤收集统计
组合模式【结构型】: 部分与整体的关系 都放到一个类的时候,叫结构型
备忘录模式【行为型】: 新添的类需要保存对象状态。
状态模式【行为型】: 状态改变需要用到的设计模式
【创建型】单例,工厂,抽象工厂,建造模式builder
外观模式【结构型】,多种多样的类来继承
中介者【行为型】模式, 对象和对象中间存在大量关系
策略模式【行为型】 多种算法在一块的时候,使用策略模式,分别继承共同父类,每种不同实现。
模板模式【行为型】 一个类公开了他的执行方法,子类不改变结构,主要是一些方法通用,一些方法需要子类重新实现。 定义一个骨架,子类实现没有那么灵活,比如一个Game类,用Football,Cricket两种游戏实现。其实类似于最基础的重构
迭代子模式【行为型】 比如vector,set,stack,map里的iterator