需求分析中要警惕“动名词”陷阱

    从汉语语法或者英语语法上说,“烹调工作”都是一个名词。但从语义上说,它其实代表着一个动作(cook),因此它是一个“动明词”。 既然它是一个动作,那么在建模时就应该把它拆散,因为拆散了可以减少两部分的耦合,提高某个部分的可重用性

   

    Cooking =  "
Do something"  according to a "
recipe"

在系统设计时

   1. Cooking 和 Recipe 应该独立建模

   2. Cooking中有时间、地点、厨师等属性

   3. Recipe中则有原料、佐料、步骤等属性

   4. Cooking 和 Recipe 是 多对一 关联关系,即同一个菜谱可以被多次使用。

如果我们一开始没有把它拆散,只做一个Cooking类,把原料、佐料也当作它的属性,那么 Recipe 就没办法重用。

Leave a Reply

Your email address will not be published. Required fields are marked *