LiZ'blog

不写笔记不读书.

中介者模式

设计模式学习,使用golang实现中介者模式

中介模式 定义 优点 缺点 适用范围 代码实现 参考 中介模式 定义 中介模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者使个各对象不需要显示的相互引用,从而使其藕合松散,而且可以独立的改变它们之间的交互。 中介模式的设计思想跟中间层很像,通过引入...

解释器模式

设计模式学习,使用golang实现解释器模式

解释器模式 定义 优点 缺点 适用范围 代码实现 参考 解释器模式 定义 解释器模式(interpreter):给定一种语言,定义它的文法的一种表示,并定一个解释器,这个解释器使用该表示来解释语言中的句子。 解释器模式的意义在于,它分离多种复杂功能的实现,每个功能只需关...

命令模式

设计模式学习,使用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)定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象。这个...