才子佳人博客

我的故事我讲述

面向对象设计的启发规则
 
来源:中国自学编程网  编辑:xjh  2009-10-22

人们使用面向对象方法学开发软件的历史虽然不长,但也积累了一些经验。总结这些经验得出了几条启发规则,它们往往能帮助软件开发人员提高面向对象设计的质量。
1.设计结果应该清晰易懂

使设计结果清晰、易读、易懂,是提高软件可维护性和可重用性的重要措施。显然,人们不会重用那些他们不理解的设计。保证设计结果清晰易懂的主要因素如下。

1.用词一致

应该使名字与它所代表的事物一致,而且应该尽量使用人们习惯的名字。不同类中相似服务的名字应该相同。

2.使用已有的协议

如果开发同一软件的其他设计人员已经建立了类的协议,或者在所使用的类库中已有相应的协议,则应该使用这些已有的协议。

3.减少消息模式的数目

如果已有标准的消息协议,设计人员应该遵守这些协议。如果确需自己建立消息协议,则应该尽量减少消息模式的数目,只要可能,就使消息具有一致的模式,以利于读者理解。

4.避免模糊的定义

一个类的用途应该是有限的,而且应该从类名可以较容易地推想出它的用途。

2.使类等级中包含的层次数适当

应该使类等级中包含的层次数适当。一般来说,在一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为7±2。不应该仅仅从方便编码的角度出发随意创建派生类。

3.设计简单的类

应该尽量设计小而简单的类,以便于开发和管理。当类很大的时候,要记住它的所有服务是非常困难的。经验表明,如果一个类的定义不超过一页纸(或两屏),则使用这个类是比较容易的。为使类保持简单,应该注意以下几点。

1.避免包含过多的属性

属性过多通常表明这个类过分复杂了,它所完成的功能可能太多了。

2.有明确的定义

为了使类的定义明确,分配给每个类的任务应该简单,最好能用一两个简单语句描述它的任务。

3.尽量简化对象之间的合作关系

如果需要多个对象协同配合才能做好一件事,则破坏了类的简明性和清晰性。

4.不要提供太多服务

一个类提供的服务过多,同样表明这个类过分复杂。典型地,一个类提供的公共服务不超过7个。

在开发大型软件系统时,遵循上述启发规则也会带来另一个问题;设计出大量较小的类,这同样会带来一定复杂性。解决这个问题的办法,是把系统中的类按逻辑分组。

5.使用简单的协议

一般来说,消息中的参数不要超过3个。当然,不超过3个的限制也不是绝对的,但是,经验表明,通过复杂消息相互关联的对象是紧耦合的,对一个对象的修改往往导致其他对象的修改。

6.使用简单的服务

面向对象设计出来的类中的服务通常都很小,一般只有3~5行源程序语句,可以用仅含一个动词和一个宾语的简单句子描述它的功能。如果一个服务中包含了过多的源程序语句,或者语句嵌套层次太多,或者使用了复杂的CASE语句,则应该仔细检查这个服务,设法分解或简化它。一般来说,应该尽量避免使用复杂的服务。如果需要在服务中使用CASE语句,通常应该考虑用一般一特殊结构代替这个类的可能性。

7.把设计变动减至最小

通常,设计的质量越高,设计结果保持不变的时间也越长。即使出现必须修改设计的情况,也应该使修改的范围尽可能小。

在设计的早期阶段,变动较大,随着时间推移,设计方案日趋成熟,改动也越来越小了。

来源:http://www.zxbc.cn/html/20080812/64321.html


分类:编程开发| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: