软件设计的粒度 说起粒度,最先进入我脑海的就是 一杯沙子和 一杯石头。粒度也是我进入公司后听到最有分量的一个词,因为那时导师告诉我这很重要,但很难言传,需要自己去领悟才能把握。做设计要注意粒度,写代码也要注意粒度。对于同一个问题的分解,每个人都会根据不同的动机有不同的分解方法和分解粒度。那么怎么去把握粒度呢 关于这个问题,让我们先看看一个生活中的例子。同样一个任务,有的人可能预计3步就能完成,有的人需要5步,还有的人需要10步。具体实现起来,预计3步完成的可能在某一步会手忙脚乱的,因为计划过于粗泛;而预计10步的虽然可以按部就班,但可能效率会有所影响。总的来说,粒度的划分可能不会影响任务的最终完成,可往往会对完成的过程造成影响。是3步还是10步,每个人可能都有一个自己的考虑和角度,但通过不断 实践和 总结还是可以在相互之间找到一个比较合理的范围。 而针对具体的软件项目,这个问题就可能需要用一本书去论述了。这里我只能举一个做过的UI项目的简单实例。在这个项目中需要一个显示时间的控件。对于这样一个任务,我们首先要做的就是调查一下是否有没有相应控件或既有实现。 因为程序员的职责是解决问题,而不仅仅是编代码。在得到否定答案后我们还有两种选择:一是从合适的既有控件类派生一个显示时间的控件类,重写描绘函数就O了。另一种方法就是通过组合已有控件实现预期的时间显示。这两种实现的UML图分别为:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!