高耦合度的系统是如何设计出来的

来源:互联网 发布:intellij创建java项目 编辑:程序博客网 时间:2024/04/29 22:55

高耦合度的系统是我们经常唾弃的,不错,这是一个反面例子。造成系统的高耦合度的原因有很多,其中一个就是我所遇到的:将系统的流程分析和系统结构的分析混为一谈了

其实这句话在任何讲系统分析的书中都提到过,那么为什么这个错误容易犯。

以我现在设计的那个系统为例:

在“项目规划”模块中,有一个类UIYsgq(扬水灌区),这是一个继承于Windows.Forms.Control的类,即这个类要响应用户操作。我在最初的设计中,将“扬水灌区”数据处理都放在了UIYsgq中。因为在最初的设计中,“扬水灌区”数据只可能在这里被处理,所以,将它的处理代码放在UIYsgq中是顺理成章的事情

在系统快做完的时候,客户提出了另外一种操作模式,即要求将“扬水灌区”数据作为一个子集放到另外一个用户响应界面中,这时问题就出来了。由于没有对“扬水灌区”的数据进行封装,就要在那个新的界面中重写处理“扬水灌区”的数据。

其实这个问题在基础面向对象编程的思想中也描述得很清楚,但是为什么还是被我忽略了呢?

究其原因,我直接将“系统流程”分析作为了“系统构架设计”的基础。

“系统流程”是很容易让我们联想到处理它的窗体类,如果以它为基础进行设计,就很容易将数据处理和界面绑定在一起,就会造成这个错误。这让我深深地尝到了以流程为设计向导的痛苦滋味。

 这个问题的解在什么地方呢,我不敢高论,只是说说自己的一点看法。

获得系统流程后,要根据它分析出这个系统中的对象(类),确定对象之间的联系(方法,事件,属性),然后再将分析的结果用于系统设计。我在这里说得过于简单,因为我在这方面的研究还不是很深入,但我认为这是一个正确的方向。

系统的分析方法有很多,这里只是提醒你:不要陷入“将系统的流程分析和系统结构的分析混为一谈”的陷阱。

原创粉丝点击