LiZ'blog

不写笔记不读书.

命令模式

设计模式学习,使用golang实现命令模式

命令模式 定义 优点 缺点 适用范围 代码实现 命令模式对比策略模式 参考 命令模式 定义 命令模式(Command):将一个请求封装成一个对象,从而是你可用不同的的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 优点 1、降低了系...

备忘录模式

设计模式学习,使用golang实现备忘录模式

备忘录模式 定义 优点 缺点 适用范围 代码实现 参考 备忘录模式 定义 备忘录( Memento ):在不破坏封装性的前提下,获取一个对象的内部状态,并在该对象之处保存该状态。这样以后就可将该对象恢复到原先保存的状态。 这个模式的意图很明确,主要是用来防丢失、撤销、恢...

访问者模式

设计模式学习,使用golang实现访问者模式

访问者模式 定义 优点 缺点 适用范围 代码实现 什么是 Double Dispatch 参考 访问者模式 定义 访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变元素类的前提下定义作用于这些元素的新操作。 使用访问者...

迭代器模式

设计模式学习,使用golang实现迭代器模式

迭代器模式 定义 优点 缺点 适用范围 代码实现 参考 迭代器模式 定义 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。 提供了一种方法顺序的访问一个聚合对象中的各个元素,而不是暴露该对象的内...

状态模式

设计模式学习,使用golang实现状态模式

状态模式 定义 优点 缺点 适用范围 代码实现 参考 状态模式 定义 状态模式(state):当一个条件的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态转换的的条件表达式过于复杂,把状态的判断逻辑转移到表示不同状态的...

责任链模式

设计模式学习,使用golang实现责任链模式

责任链模式 定义 优点 缺点 适用范围 代码实现 责任链模式对比装饰模式 参考 责任链模式 定义 责任链模式(Chain Of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的藕合关系。将这个对象连成一条链,并沿着...

模板模式

设计模式学习,使用golang实现模板模式

模板模式 定义 模板模式的作用 优点 缺点 适用范围 代码实现 回调 模板模式 VS 回调 参考 模板模式 定义 模板模式(TemplateMethod):定义一个操作中的算法骨...

观察者模式

设计模式学习,使用golang实现观察者模式

观察者模式 定义 适用场景 优点 缺点 代码实现 不同场景的实现方式 观察模式和发布订阅模式 参考 观察者模式 定义 观察者模式(Observer Design Pattern)定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象。这个...

享元模式

设计模式学习,使用golang实现享元模式

享元模式 定义 优点 缺点 适用场景 代码实现 享元模式和单例模式的区别 参考 享元模式 定义 享元模式(Flyweight),运用共享技术有效的支持大量细粒度的对象。 享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象。就是当一个系统中有大量的...

组合模式

设计模式学习,使用golang实现组合模式

组合模式 定义 适用范围 优点 缺点 代码实现 参考 组合模式 定义 组合模式(Composite),将对象组合成树形结构以表示’部分-整体’的层次关系。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式,将一组对象组织成树形结构,将单个对象和组合对象都看...