更新时间:2022-10-01 13:24:04
最近在写一个资源分配模块,主要的要求是这样的:
那么,该如何正确、高效地实现这个模块呢?
俗话说得好,磨刀不误砍柴工,同样我们首先得把模块的主要架子“这把刀”磨好,这就要求先确定好实现这个功能的主要框架或者模型。下面是我反复思考后的设计:
当然,上面只是一些主要的分析,后面设计的过程中还要更具体才行。但是,从上面的例子不难看到,把具体的业务首先落实到模型,最后对应到多种数据结构,同时考虑内在的同步互斥等关系,这样我们就能把画出这个模块的大框架,后面就可以对框图里面的子模块逐一细化、提炼了。而且,实现这些功能的模型和数据结构,其实也是最常见的类型,基本都只是大学里数据结构和操作系统的很小一部分内容了。但是,反过来,如果我们没有首先进行建立模型和抽象的过程,就难免落入具体业务需求的冗繁当中,有时难免不见森林、顾此失彼。
因此,碰到具体的需求,利用抽象、分层的思想、结合已有的的模型去描述,能极大地方便我们表述问题、实现功能。往大点说,这也是一种通过方法论而非经验提高自己的有效途径。下面列出了一些建模过程常用的模型和数据结构,欢迎大家多多补充:
模型:事件驱动,生产者消费者,状态机,面向对象