【需求分析】
项目最近需要写一个逻辑srv,srv的业务逻辑比较简单,收包、解包、根据命令字进行业务处理、回包。 考虑每一次请求都是一项任务,而逻辑srv是一个任务管理器,这样我们就有两个类,TaskMng和Task, TaskMng只负责大的业务逻辑, 而Task做为一个具体业务处理类,需要根据命令字进行不同的业务处理。需要关注的是所有的task都有一些共同点,如收包、解包、检查包的合法性等,因此可以把task定义为基类,并实现通用的部分,而把业务逻辑相关特殊的部分放到子类里去实现。
上面的实现就是“策略模式”,策略模式是一种行为模式,主要是把定义一系列的算法,并封装到算法类中,通过把策略独立出来,通过继承的方式实例化多个策略,在客户类中维护一个指向策略父类的引用,在运行时即可动态改变引用指向的子策略从而实现我们的需求。
【代码举例】
通过对需求的分析,可以写出下面的代码实现。
【总结】
本文介绍如何使用策略模式简化逻辑srv的设计。通过将不同的业务处理逻辑封装成独立的Task子类,使得核心的TaskMng类仅需管理这些策略的调用流程,实现了良好的扩展性和维护性。
1864

被折叠的 条评论
为什么被折叠?



