软件构造学习笔记 【七】 (第10、11、12章)


这一部分由于时间问题,我会尽量简短地总结现有知识点。这次笔记我们主要学习第七部分。

一、第10章知识点

1.1 可维护性的常见度量指标

1.1.1 指标

  • 可维护性
  • 可扩展性
  • 灵活性
  • 可适应性
  • 可管理性
  • 支持性

1.1.2实际方法

  • 继承的层数
  • 类之间的耦合度
  • 单元测试的覆盖度

1.2 聚合度与耦合度

在这里插入图片描述

图1 内聚、耦合

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 语法、正则表达式

这边只放一张图,规则如下:
在这里插入图片描述

图2 正则表达式规则

同时,对于转义字符\,写在java中时要多写一个\,防止被转义。

二、第11章知识点

第11章唯一的知识点就是设计模式,我们要学习的设计模式包括这些:
在这里插入图片描述

图3 要学的模式

其中装饰器模式、访问者模式是重点。
装饰者模式,大体上就是同一个对象经过不同的装饰函数,使其变成自己想要让它变成的模式;
访问者模式,基本上就是对于自己不同的客户看到自己不同的东西,这样可以定义一个访问接口,分别对于不同的客户设计不同的类去继承这个接口,改造出自己想要的功能;设计完方法后可以再为不同的被访问者设计接受类型,也就是用不同的class替代if-else。
其他的模式暂且不做总结。

三、第12章知识点

这一章主要讲了关于程序健壮性、正确性的内容,以及异常的抛出等。
健壮性是指不正常输入下的强度、正确性就是是否按spec执行。
异常全部是throwable类的子类,这个类的子类可划为Error类Exception类
同时这些异常也可分为checked和unchecked类。
在这里插入图片描述

图3 分类

Unchecked的异常不用捕获或抛出,只要输出错误信息;checked异常就需要捕获、抛出了。
异常也有协变,子类抛出的异常要和父类抛出异常相同或更具体。
断言式:正常情况下是不能用的,要先挂@Test才能用。
作用的话,是比较condition用的。格式如下:
assert condition或assert condition : message。
防御式编程:
在这里插入图片描述

图4 防御式编程

SpotBugs 是一款 Java 静态代码分析工具,可以用来debug。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值