软件构造小结(1)

软件构造知识小结

质量因素

外部质量因素:正确性、健壮性(对异常做出处理)、可拓展性、可复用性、兼容性、性能、可移植性、易用性、功能性、及时性。
内部质量因素:与代码相关,包括可读性和代码复杂性。

软件构造视图三个维度

构建时和运行时、时间点和时间段、代码层和构件层。

版本控制

commit直接到达本地仓库、push到达远程仓库
reset回到workspace , fetch由远程到本地,clone直接到workspace
通过指向文件的指针来标识改变,指针可以多次使用

ADT

构造器、生产器、观察器、变值器
RI,表示独立性:外在使用无需考虑内部实现
防御性副本:返回可变参数的副本
rep,表示不变性:描述合法的表示值
AF,抽象函数:表示空间到抽象空间的映射
理解 R 和 A 是表示不变性和抽象函数的集合本质

静态检查和动态检查

静态检查:类型不匹配、语法错误、函数名错误、参数数目错误、返回值类型错误。
动态检查:非法参数(除0)、数组越界访问、空指针
unmodifiable,只读不可修改。

等价性

观察等价性:对两个对象调用相同操作得到结果相同

==:代表引用等价性,对基本数据型使用
equals:对象等价性,对对象使用,必须重写(否则为引用等价性)
等价的对象必须有相同的hashCode。
可变类型关注行为等价性即可

参数化多态

参数化多态:泛型,不依赖实参类型
非参数化多态:overload,依赖于实参类型

协变和逆变

协变与返回值类型相关,具体的类有具体的返回值类型
子类抛出的异常必须是父类异常的子类型

逆变与参数相关,子类的参数必须相较于父类更抽象

继承和委派

委派发生在object层面,继承发生在class层面
如果只复用小部分方法可以用委派来实现

临时委派,使用其他类为参数,而不保存为域

Behavioral patterns

Strategy Pattern
有多种不同的算法来实现同一个任务,用户自行选择算法
为不同的实现算法构造抽象接口,使用时用户选择具体实例
Template Method
做事情的步骤一样,但具体方法不同
共性的步骤在抽象类内公共实现,差异化的步骤在各个子类中实现
本质上是抽象加继承重写的模式
Iterator Pattern
实现Iterable接口,允许客户端利用这个迭代器进行显式或隐式的迭代遍历
Visitor Pattern
访问者模式实际做的是创建一个使用其他类中数据的外部类
只需要在visitor实现中进行更改,就能修改操作逻辑
将数据和作用于数据上的某种/些特定操作分离开来

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值