prince的文章

18、 Golang 设计模式:18_模板模式

1、介绍 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法(Template Method)是一个比较简单的模式。它的主要思想是,定义一个操作的一系列步骤,对于...

17、 Golang 设计模式:17_状态模式

1、介绍 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 状态模式(State)经常用在带有状态的对象中。 什么是状态?我们以QQ聊天为例,一个用户的QQ有几种状态: 离线状态(尚未登录); 正在登录状态; 在线状...

16、 Golang 设计模式:16_解释器模式

1、介绍 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 解释器模式(Interpreter)是一种针对特定问题设计的一种解决方案。例如,匹配字符串的时候,由于匹配条件非常灵活,使得通过代码...

15、 Golang 设计模式:15_观察者模式

1、原理 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式(Observer)又称发布-订阅模式(Publish-Subscribe:Pub/Sub)。它是一种通知机制,让...

14、 Golang 设计模式:14_责任链模式

1、原理 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 责任链模式(Chain of Responsibility)是一种处理请求的模式,它...

13、 Golang 设计模式:13_享元模式

1、介绍 运用共享技术有效地支持大量细粒度的对象。 享元(Flyweight)的核心思想很简单:如果一个对象实例一经创建就不可变,那么反复创建相同的实例就没有必要,直接向调用方返回一个共享的实例就行,这样即节省内存,又可以减少创建对象的过程...

12、 Golang 设计模式:12_装饰器模式

1、介绍 动态地给一个对象添加一些额外的职责。就增加功能来说,相比生成子类更为灵活。 装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法。 Component: ** **对象的接口类,定义装饰对象和被装饰对...

11、 Golang 设计模式:11_桥接模式

1、介绍 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 可以看到在桥接模式的结构图中,存在一条连接两个继承等级结构的桥。...

10、 Golang 设计模式:10_外观模式

1、介绍 为子系统中的一组接口提供一个一致的界面。Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式可以让复杂的东西看起来简单。 外观模式,即Facade,是一个比较简单的模式。它的基本思想如下: 如果客户端要...