第3,6,7,10章读书笔记

第三章函数

3.1 短小

函数的最重要的原则说三遍:短小、短小、短小。

if,else,while等语句,代码块应该尽量只有一行,且此行是一个函数调用语句。函数名应该具有说明性,增加文档的价值。

例:JDK源码:

private static inthugeCapacity(int minCapacity) {
        if (minCapacity < 0) //overflow
            throw newOutOfMemoryError();//此处可以猜测是抛出内存益出相关错误。
        return (minCapacity > MAX_ARRAY_SIZE)? Integer.MAX_VALUE :MAX_ARRAY_SIZE;
}


3.2 只做一件事

函数应该只做一件事。判别方法:是否可以再拆分出一个函数。

3.3 每个函数一个抽象级别。

函数的语句都要在同一抽象层次级别上。例如经典的MVC模型,就是一种抽象级别分离的方法。

自定乡下读代码:向下规则

读程序方法:程序就像一系列TO起头的段落,每一段都描述当前的抽象级别,并引用下一层的抽象级别的段落。

3.4switch语句

抽象工厂设计模式。

3.5 使用描述性的名称

别害怕长名称。具有描述性的名称比段而小令人费解的名称好。

例 c = a*b 应改为result = multiplicand *multiplier,增加可读性。

命名方式要保持一致。

3.6 函数参数

函数参数越少越好,最理想是没有参数,尽量避免三个参数。参数少有利于测试。

ArrayList源码中的方法基本都是不多于一个参数


   如果参数需要二个或者三个以上,可以将其中一些参数封装成类。

比较:

Circle  make Circle(double x,double y, doubleradius);
Circle  makeCircle(Point center, double radius);


3.8分隔指令与询问

函数要么做什么事,要么回答什么事。

3.9.1 抽离try /catch代码块

将try/catch代码块的主体部分抽离出来,另外形成函数。


3.10 别重复自己

3.11结构化编程

Dijkstra规则:每个函数,函数中的代码块应有一个入口,一个出口。且只有一个return语句,循环中不能有break,continue语句,永远不用goto语句。

小结

函数是语言的动词,类是名词。

第六章函数

6.2数据对象的反对称性

过程式代码便于在不改动既有数据结构的前提下添加新函数。

面向对象代码便于在不改动既有函数的前提下添加新类。

6.3得濹忒耳律

模块不应了解他所操作对象的内部情形。

第七章错误处理

错误处理不应搞乱代码逻辑。

7.1使用异常而非返回码

预见异常时,不应出现 print(“xxy异常”)活者return null这种形式

应采用抛出异常的方式

Ex:

private void rangeCheck(int index) {
       if (index >= size)
           throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}

7.7 别返回null值

7.8 别传递null值

 

第十章 类

10.1 类的组织

Java约定,类应从一组变量列表开始。如果有公共静态常量,应该先出现。然后是静态私有变量,以及私有实体变量.很少会有公共变量。

10,2 类应该短小

类的名称应当描述其权责。

单一权责原则:类或者模块应有且只有一条加以修改的理由。

类应该只有少量实体变量。

每个变量被每个方法所使用,称该类具有最大的内聚性。

10.3 为了修改而组织

对于多数系统,修改一直持续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值