一些类设计指导原则

书的第4章内容是对前几章内容的一个实例解说,用一个类例子然后对他进行解剖解析每个部分属于什么。

第5章的笔记-类设计指导原则

1. 真实世界系统建模

 想不到本的第5章类设计指导原则第一条说的跟自己之前写下的笔记设想的一样,把程序当成现实世界的倒影来设计,把每个对象设计成一个个独立的个体,他们有不为其他人所知的想法,他们有行为。在设计类的时候,把类内部的属性方法当作他的想法(不为其他人知,其他对象不能访问这些属性和方法),还要设计他跟其他人交流的行为。

2. 最少公共接口

 最少公共接口可以使类尽可能简洁,我们需要类做什么,类就提供什么接口。如果我想知道这个人的想法,那么我就会去问他,你的想法是什么?(类就要提供这样的一个接口,使我能完成这个操作)。

3. 隐藏实现

 隐藏实现简单来说就是,你需要完成一个作业,跟老师交互就是把完成了的作业交上去,老师要的是你的作业,至于你是怎么做的他不用知道。完成作业的过程,在面向对象设计中称为实现。

4. 设计健壮的构造函数和析构函数

 构造函数应当将对象置于一种安全的初始状态,对象里面会有很多操作,有时候这个操作需要一些特定的属性才可以正常运行。例如我创建了一个售货员的对象,有售票的行为,这个行为先必须知道票价。当实例化这个对象的时候就必须利用构造函数,定义一个票价,使得这个行为能够正常运行。

 析构函数将程序中一些不需要的对象在内存中清理掉,把这些对象在内存中占用的位置清空用来放置其他的对象。如果一个对象未能适当地释放它的对象生存期中获得的内存,那么只要创建这个对象的应用还在执行,对整个操作系统来说这部分内存就掉失。如果这个对象未适当地释放内存,再创建这个对象,然后又未适当释放内存,又创建,这样重复下去,最后系统的内存会全部用完。其他程序因为得不到内存进行正常的操作而置于一种不安全的状态,最普通的就是“死机”。

5. 在类中设计错误处理

      每个程序就像人一样,就像多么严谨的人,总有一次会出错。如果程序中未能将这一次错误处理好,程序可能会出现不可预计的结果,有可能用户使用了这个程序几天时间,在里面放置里大量的资料,一次错误出现没有处理好,可能会掉失用户资料。

6. 对类建立文档以及使用注释

 使用建立文档以及使用注释可使后续扩张跟维护简单很多。因为很多时候开发与后期维护不是同一个人或公司,当这个系统比较复杂的时候,维护人员还要每个类每个逻辑结构去了解他的功能,维护人员的时间就会大大增大,直接使得真个维护工期增加,公司的支出就加大。只要开发人员在开发的手,简单的加了几句注释就可以减低这些支出是非常值得的。

7. 名字要有描述性

 设计一个类、对象、属性和方法的时候要遵循一个命名约定。有很多命名约定,至于选择那么命名约定就看你自己的个人爱好或者项目规定。确保其他人读到这个名字的时候,他应该从名字就能理解到这个对象表示什么。

8.让作用域尽可能小

 尽可能将属性和行为置于局部,采用这种方式、维护。测试和扩展都会容易很多。如果一个类的属性只他一个过程中使用。那么这个属性就最好设计成模块属性。我再反思我上一篇随笔发的代码中,就没符合这个要求,那个类中存在两种逻辑结构,使用的属性都不一样,都只在自己对性的逻辑结构中使用,但我把它们设计成类属性。

9. 测试接口

使用桩(最小实现,简单来说就是自己虚构一些值)。这种方法主要就是测试接口的可用性,这个接口能不能符合我们的要求等等。如果我设计一个类是用户类跟数据库交互数据的中间类,那么我在测试这个中间类的接口的时候,本来要连接数据库才能获得的数据,直接在方法中自己虚构一些数据。

当测试接口结束后,桩不需要删除,反而要把它作为注释保存下来,留着以后维护或扩展的时候作为参考。

 

 

第6章内容也是一个实例,用一个完整的系统设计的例子来解说整个系统的设计过程,正在阅读中...

 

 

 

---------------

星期六日放假,在宿舍的时间长了, 按耐不住游戏的诱惑啊,跟师弟舍友玩了很长时间的游戏,书本都没看多少,本来的阅读速度慢了一章,看来心智还不够成熟啊,要磨练一下,我要忍耐。要保持速度,要让自己记住玩游戏有多开心都不够自己的作品诞生开心。

今天中午居然发现饭卡不见了,哎,里面还有50元加上饭卡补办的30元就80元没了,要打多少行代码啊。该死的小杰!

 

 

 

posted @ 2009-11-01 18:07  尐傑.net  阅读(182)  评论(0编辑  收藏  举报