目录链接
这一部分由于时间问题,我会尽量简短地总结现有知识点。这次笔记我们主要学习第七部分。
一、第10章知识点
1.1 可维护性的常见度量指标
1.1.1 指标
- 可维护性
- 可扩展性
- 灵活性
- 可适应性
- 可管理性
- 支持性
1.1.2实际方法
- 继承的层数
- 类之间的耦合度
- 单元测试的覆盖度
1.2 聚合度与耦合度
1.3 SOLID
这个部分分为(SRP) The Single Responsibility Principle 单一责任原则、(OCP) The Open-Closed Principle 开放-封闭原则、(LSP) The Liskov Substitution Principle 里氏替换原则、(ISP) The Interface Segregation Principle 接口聚合原则、(DIP) The Dependency Inversion Principle 依赖转置原则。
1.3.1 SRP,单一责任原则
使得ADT变化的原因(责任)不得多于一个,如果多于一个,就分散它们,并用委派的方式创建新ADT即可。
1.3.2 OCP,开放-封闭原则
用抽象技术,使得实体对外扩展开放,对内修改封闭。也就是增加新功能地时候直接继承公共父类编写子类即可。
1.3.3 LSP,里氏替换原则
这个就是之前讲过的,它要求所有的类出现的地方,都可以用子类替代。
1.3.4 ISP,接口聚合原则
类型依赖接口时,要依赖最小的一个接口,防止方法冗余。
1.3.5 DIP,依赖转置原则
类型要尽量依赖接口。
1.4 语法、正则表达式
这边只放一张图,规则如下:
同时,对于转义字符\
,写在java中时要多写一个\
,防止被转义。
二、第11章知识点
第11章唯一的知识点就是设计模式,我们要学习的设计模式包括这些:
其中装饰器模式、访问者模式是重点。
装饰者模式,大体上就是同一个对象经过不同的装饰函数,使其变成自己想要让它变成的模式;
访问者模式,基本上就是对于自己不同的客户看到自己不同的东西,这样可以定义一个访问接口,分别对于不同的客户设计不同的类去继承这个接口,改造出自己想要的功能;设计完方法后可以再为不同的被访问者设计接受类型,也就是用不同的class替代if-else。
其他的模式暂且不做总结。
三、第12章知识点
这一章主要讲了关于程序健壮性、正确性的内容,以及异常的抛出等。
健壮性是指不正常输入下的强度、正确性就是是否按spec执行。
异常全部是throwable类的子类,这个类的子类可划为Error类和Exception类。
同时这些异常也可分为checked和unchecked类。
Unchecked的异常不用捕获或抛出,只要输出错误信息;checked异常就需要捕获、抛出了。
异常也有协变,子类抛出的异常要和父类抛出异常相同或更具体。
断言式:正常情况下是不能用的,要先挂@Test才能用。
作用的话,是比较condition用的。格式如下:
assert condition或assert condition : message。
防御式编程:
SpotBugs 是一款 Java 静态代码分析工具,可以用来debug。