软件模块结构不是什么神奇的东西,也不是神奇模式的组合。如何做才是一个好的软件模块结构?其实很简单:
1、抛开语言和平台,考虑软件的功能模块。
软件模块功能通常都对应于实际的生活现实中的逻辑,物体、事物。那么软件的第一层模块拆分就应该按照这些自然的事物为标准进行拆分。并描述相互之间的关系。
再按照这个拆分标准,对顶层模块进行拆分。
2、再使用软件语言平台去实现这些事物对象和相互间的关系逻辑。
通常情况下,很多语言无法直接描述这些模块以及逻辑关系,这样才会引入一些附加的模式,或者逻辑模块。
设计软件,不是为了模式而设计, 而是为了实现解决生活现实的业务功能。所以先描述现实的业务功能,实现过程使用自然需要用到一些模式,再适当使用,以便本末倒置。
以后有具体例子再给附上。