命令池的实现

本文探讨了命令池的功能,包括开启执行线程、设置命令回调、记录执行时间和调度算法。作者对CSchedule的继承设计与CCommandPool的策略模式提出疑问,认为可能出于减少侵入性和未来变化考虑。同时,分析了CComandPoolImpl与CCommandHandler、CCommandScheduler的关系,指出可能采用了类似外观模式的设计,以简化用户使用接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



图1 命令池类图


一、首先要清楚命令池要实现的功能

        学习代码为了帮助分析,大概总结了下,最基本的功能有如下几个:开启执行线程,设置命令回调接口,记录线程对命令的执行时间,命令执行的调度算法。类图就是按照这几个主要的功能来实现的,CThreadRunner类为记录线程运行时间的类。


二、对于设计的一点疑问

       为什么CSchedule使用继承,而CCommandPool类使用策略,主要原因可能是CComandPool中没有实现任何一个成员函数,那么继承的复用优势就一点也没有体现出来。如果把CComandPool里面成员函数定义成虚接口,CComandPoolImpl继承实现接口,其实也可以。虽然继承有“强侵入”性质,但是基本上所有的CComandPool的子类都要实现这几个接口,这里的需求改变可能性不大(不是业务逻辑,而是技术上的逻辑实现,除非给命令池增加新功能,可能性不大&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值