Go 常用的设计模式

Python025

Go 常用的设计模式,第1张

它返回的是接口而不是结构体。

在项目开发中,我们经常要根据不同的场景,采取不同的措施,也就是不同的策略。比如,假设我们需要对 a、b 这两个整数进行计算,根据条件的不同,需要执行不同的计算方式。为了解耦,需要使用策略模式,定义一些独立的类来封装不同的算法,每一个类封装一个具体的算法(即策略)。

模板模式就是将一个类中能够公共使用的方法放置在抽象类中实现,将不能公共使用的方法作为抽象方法,强制子类去实现,这样就做到了将一个类作为一个模板,让开发者去填充需要填充的地方。

可以为另一个对象提供一个替身或者占位符,以控制对这个对象的访问。

选项模式通常适用于以下场景:

最近复习设计模式

拜读谭勇德的<<设计模式就该这样学>>

本系列笔记拟采用golang练习之

委派模式(Delegate Pattern)又叫作委托模式,基本作用就是负责任务的调用和分配,是一种特殊的静态代理模式,可以理解为全权代理模式,但是代理模式注重过程,而委派模式注重结果。

委派模式有3个参与角色。

(1)抽象任务角色(ITask):定义一个抽象接口,它有若干实现类。

(2)委派者角色(Delegate):负责在各个具体角色实例之间做出决策,判断并调用具体实现的方法。

(3)具体任务角色(Concrete):真正执行任务的角色。

_

delegate_pattern_test.go

定义消息接口

消息的基类, 实现IMsg接口

表示原样返回的消息, 用于PING/PONG心跳. 继承自BaseMsg

表示获取服务器时间的消息. 继承自BaseMsg

消息处理器接口. 调度器和具体消息处理器, 均需要实现此接口.

全局消息调度器, 是所有客户端消息的统一入口. 用于注册消息处理器, 按类型分发消息. 实现IMsgHandler接口.

专门处理EchoMsg消息的处理器. 实现IMsgHandler接口.

专门处理TimeMsg消息的处理器, 实现IMsgHandler接口.

委派模式的优点

通过任务委派能够将一个大型任务细化,然后通过统一管理这些子任务的完成情况实现任务的跟进,加快任务执行的效率。

委派模式的缺点

任务委派方式需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下,可能需要进行多重委派,容易造成紊乱。

_

(end)