GoLang设计模式11 - 备忘录模式

备忘录模式是一种行为型设计模式。这种模式允许我们保存对象在某些关键节点时的必要信息,以便于在适当的时候可以将之恢复到之前的状态。通常它可以用来帮助设计撤销/恢复操作。下面是备忘录设计模式的主要角色: Originator(发起者):Originator是当前的基础对象,它会将自己的状态保存进备忘录Memento(备忘录) : 存储着Originator的状态的对象Caretaker(管理人):Caretaker是...

GoLang设计模式10 - 中介者模式

中介者模式是一种行为型设计模式。在中介者模式中创建了一个中介对象来负责不同类间的通信。因为这些类不需要直接交互,所以也就能避免它们之间的直接依赖,实现解耦的效果。中介者模式的一个典型案例是老式小火车站。为保证铁路系统稳定运行,两列火车一般不会直接通信,而是听从车站管理员的调度。这里车站管理员就是一个中介者。他维护着一个火车进站的调度表,让火车站一次只允许一列火车停靠。当一列火车离开车站时,他才会通知调度表中的下一趟火...

GoLang设计模式12 - 空对象模式

空对象设计模式是一种行为型设计模式,主要用于应对空对象的检查。使用这种设计模式可以避免对空对象进行检查。也就是说,在这种模式下,使用空对象不会造成异常。空对象模式的组件包括: Entity:接口,定义了子struct需要实现的方法ConcreteEntity:实现了Entity 的具体structNullEntity:这个就表示了空对象,虽然也实现了Entity接口,但它的值都是空的Client:这个类会获取E...

GoLang设计模式13 - 观察者模式

观察者模式是一种行为型设计模式。这种模式允许一个实例(可以称为目标对象)发布各种事件(event)给其他实例(观察者)。这些观察者会对目标对象进行订阅,这样每当目标对象发生变化时,观察者就会收到事件(event)通知。 来看个例子:在电商网站经常会有各种商品脱销,假如有顾客已经在关注这些商品,这些商品的脱销就会对他们产生不好的体验。如果顾客还想买这些商品,那么通常有如下解决方案: 顾客以一定的频率检查这些商品是否在售...

GoLang设计模式14 - 状态模式

状态模式,顾名思义,是一种基于有限状态机制的设计模式。在这种设计模式中,行为是由相应的状态来决定的。接下来我们会用一个售卖机的例子来说明下状态模式。为了便于说明,我们把场景简化一下,假设有一台售卖机只卖一种商品,且只有如下四种状态: 有商品无商品商品请求中已收款 一台售卖机也应该会有多种功能,我们同样做一下简化,假设这台售卖机只有四个功能: 选择商品补充商品投币吐出商品 什么时候使用状态模式 在一个对象有多...

GoLang设计模式15 - 策略模式

策略模式是一种行为型设计模式。通过策略模式,可以在运行时修改一个对象的行为。接下来仍然是通过例子来了解策略模式。比如说内存缓存,这是我们在开发中经常使用的东西,大家应该都有一定的了解,接下来就用内存缓存来说明下如何使用策略模式。向内存里存东西对于GoLang来说算是比较简单的事情,通过Map就可以做到,不过还是建议创建一个Cache struct来稍稍封装一下。不过我们都知道,内存缓存占用的空间是有上限的。当快达到...
© 2021 LMLPHP 关于我们 联系我们 友情链接 耗时0.006090(s)
2021-11-27 19:40:29 1638013229