随笔分类 -  设计模式

1 2 下一页
设计模式学习-使用go实现中介者模式
摘要:中介模式 定义 优点 缺点 适用范围 代码实现 参考 中介模式 定义 中介模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者使个各对象不需要显示的相互引用,从而使其藕合松散,而且可以独立的改变它们之间的交互。 中介模式的设计思想跟中间层很像,通过引入中介这个中间层,将一组对象之间 阅读全文
posted @ 2021-12-02 09:57 ZhanLi 阅读(91) 评论(0) 推荐(1) 编辑
设计模式学习-使用go实现解释器模式
摘要:解释器模式 定义 优点 缺点 适用范围 代码实现 参考 解释器模式 定义 解释器模式(interpreter):给定一种语言,定义它的文法的一种表示,并定一个解释器,这个解释器使用该表示来解释语言中的句子。 解释器模式的意义在于,它分离多种复杂功能的实现,每个功能只需关注自身的解释。 对于调用者不用 阅读全文
posted @ 2021-11-30 14:19 ZhanLi 阅读(174) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现命令模式
摘要:命令模式 定义 优点 缺点 适用范围 代码实现 命令模式对比策略模式 参考 命令模式 定义 命令模式(Command):将一个请求封装成一个对象,从而是你可用不同的的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 优点 1、降低了系统耦合度; 2、新的命令可以很容易添加到系统 阅读全文
posted @ 2021-11-29 13:24 ZhanLi 阅读(145) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现备忘录模式
摘要:备忘录模式 定义 优点 缺点 适用范围 代码实现 参考 备忘录模式 定义 备忘录( Memento ):在不破坏封装性的前提下,获取一个对象的内部状态,并在该对象之处保存该状态。这样以后就可将该对象恢复到原先保存的状态。 这个模式的意图很明确,主要是用来防丢失、撤销、恢复等。 优点 1、给用户提供了 阅读全文
posted @ 2021-11-27 20:59 ZhanLi 阅读(101) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现迭代器模式
摘要:迭代器模式 定义 优点 缺点 适用范围 代码实现 参考 迭代器模式 定义 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。 提供了一种方法顺序的访问一个聚合对象中的各个元素,而不是暴露该对象的内部表示。 这里的聚合对象也叫容 阅读全文
posted @ 2021-11-24 19:59 ZhanLi 阅读(262) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现责任链模式
摘要:责任链模式 定义 优点 缺点 适用范围 代码实现 责任链模式对比装饰模式 参考 责任链模式 定义 责任链模式(Chain Of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的藕合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到一个对象处理完为止 阅读全文
posted @ 2021-11-22 08:58 ZhanLi 阅读(320) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现模板模式
摘要:模板模式 定义 模板模式的作用 优点 缺点 适用范围 代码实现 回调 模板模式 VS 回调 参考 模板模式 定义 模板模式(TemplateMethod):定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 模板方法模式就是 阅读全文
posted @ 2021-11-20 21:51 ZhanLi 阅读(254) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现观察者模式
摘要:观察者模式 定义 适用场景 优点 缺点 代码实现 不同场景的实现方式 观察模式和发布订阅模式 参考 观察者模式 定义 观察者模式(Observer Design Pattern)定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象。这个主题对象在状态发生变化的时,会通知所有的观察者对象, 阅读全文
posted @ 2021-11-18 17:27 ZhanLi 阅读(338) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现享元模式
摘要:享元模式 定义 优点 缺点 适用场景 代码实现 享元模式和单例模式的区别 参考 享元模式 定义 享元模式(Flyweight),运用共享技术有效的支持大量细粒度的对象。 享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象。就是当一个系统中有大量的重复对象的时候,如果这些对象是不可变对象, 阅读全文
posted @ 2021-11-17 10:18 ZhanLi 阅读(166) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现组合模式
摘要:组合模式 定义 适用范围 优点 缺点 代码实现 参考 组合模式 定义 组合模式(Composite),将对象组合成树形结构以表示'部分-整体'的层次关系。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式,将一组对象组织成树形结构,将单个对象和组合对象都看做树中的节点,以统一处理逻辑, 阅读全文
posted @ 2021-11-16 14:06 ZhanLi 阅读(245) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现外观模式
摘要:外观模式 定义 适用范围 代码实现 优点 缺点 关于接口粒度的思考 参考 外观模式 定义 外观模式也叫门面模式 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 适用范围 1、解决易用性问题 门面模式可以用来封装系统的底 阅读全文
posted @ 2021-11-15 11:18 ZhanLi 阅读(270) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现适配器模式
摘要:适配器模式 定义 代码实现 优点 缺点 适用范围 代理、桥接、装饰器、适配器4种设计模式的区别 参考 适配器模式 定义 适配器模式的英文翻译是Adapter Design Pattern。顾名思义,这个模式就是用来做适配的,它将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可 阅读全文
posted @ 2021-11-14 16:07 ZhanLi 阅读(194) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现装饰模式
摘要:装饰器模式 定义 代码实现 优点 缺点 适用范围 装饰器模式和桥接模式的区别 参考 装饰器模式 定义 装饰模式:动态的给一些对象添加额外的职责,就增加功能来说,装饰模式比生成子类更灵活。 举个栗子: 我们现在买手机或者电脑,都有基础配置,然后根据我们选择的运行内存的大小,具体的CPU,手机或电脑的价 阅读全文
posted @ 2021-11-13 19:00 ZhanLi 阅读(237) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现桥接模式
摘要:桥接模式 前言 定义 优点 缺点 应用场景 代码实现 参考 桥接模式 前言 桥接模式的代码实现非常简单,但是理解起来稍微有点难度,并且应用场景也比较局限,所以,相当于代理模式来说,桥接模式在实际的项目中并没有那么常用,所以能分辨出来就行了,这里不做重点的学习。 定义 桥接模式:将抽象部分和它的实现部 阅读全文
posted @ 2021-11-11 10:03 ZhanLi 阅读(306) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现代理模式
摘要:代理模式 定义 优点 缺点 应用场景 代码实现 参考 代理模式 定义 定义:为其对象提供一种代理以控制这个对象的访问。通俗点讲就是它在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。 来点通俗的理解: 比如我们买火车票,除了火车站,很多代售点也是可以买的,代售点的作用就是 阅读全文
posted @ 2021-11-10 13:17 ZhanLi 阅读(362) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现原型模式
摘要:原型模式 定义 代码实现 优点 缺点 适用场景 参考 原型模式 定义 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型 阅读全文
posted @ 2021-11-08 18:51 ZhanLi 阅读(212) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现建造者模式
摘要:建造者模式 定义 适用范围 与工厂模式的区别 优点 缺点 参考 建造者模式 定义 Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式。 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一 阅读全文
posted @ 2021-11-06 22:46 ZhanLi 阅读(260) 评论(0) 推荐(0) 编辑
设计模式学习-使用go实现单例模式
摘要:单例模式 定义 优点 缺点 适用范围 代码实现 懒汉模式 饿汉模式 双重检测 sync.Once 参考 单例模式 定义 什么是单例模式:保证一个类仅有一个实例,并提供一个全局访问它的全局访问点。 例如:在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服 阅读全文
posted @ 2021-11-04 14:49 ZhanLi 阅读(609) 评论(0) 推荐(0) 编辑
一些常用的代码规范
摘要:一些常用的代码规范总结 前言 命名 1、命名的长度选择 2、利用上下文简化命名 3、命名要可读、可搜索 4、如何命名接口 注释 1、注释到底该写什么 2、注释是不是越多越好 代码风格 1、函数多大才合适 2、一行代码多长最合适 3、善用空行分割单元块 编程技巧 1、把代码分割成更小的单元块 2、避免 阅读全文
posted @ 2021-11-03 13:31 ZhanLi 阅读(1372) 评论(0) 推荐(1) 编辑
策略模式学习,使用go实现策略模式
摘要:策略模式 定义 优点 缺点 使用场景 代码实现 策略模式和工厂模式的区别 参考 策略模式 定义 策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到客户端的使用,也称为政策模式(Policy)。 策略模式主要的作用还是解耦策略的定义、创建和使用,控制代码的复杂 阅读全文
posted @ 2021-10-26 11:00 ZhanLi 阅读(815) 评论(0) 推荐(0) 编辑

1 2 下一页