在项目开发中,我们经常要根据不同的场景,采取不同的措施,也就是不同的策略。比如,假设我们需要对 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)