实战设计模式系列-Strategy(策略)

本文介绍如何使用策略模式简化逻辑srv的设计。通过将不同的业务处理逻辑封装成独立的Task子类,使得核心的TaskMng类仅需管理这些策略的调用流程,实现了良好的扩展性和维护性。

【需求分析】

 

    项目最近需要写一个逻辑srv,srv的业务逻辑比较简单,收包、解包、根据命令字进行业务处理、回包。 考虑每一次请求都是一项任务,而逻辑srv是一个任务管理器,这样我们就有两个类,TaskMng和Task, TaskMng只负责大的业务逻辑, 而Task做为一个具体业务处理类,需要根据命令字进行不同的业务处理。需要关注的是所有的task都有一些共同点,如收包、解包、检查包的合法性等,因此可以把task定义为基类,并实现通用的部分,而把业务逻辑相关特殊的部分放到子类里去实现。

 

    上面的实现就是“策略模式”,策略模式是一种行为模式,主要是把定义一系列的算法,并封装到算法类中,通过把策略独立出来,通过继承的方式实例化多个策略,在客户类中维护一个指向策略父类的引用,在运行时即可动态改变引用指向的子策略从而实现我们的需求。

 

【代码举例】

  

    通过对需求的分析,可以写出下面的代码实现。

 

 

【总结】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值