软件构造复习笔记 Chapter 3

1.java中的数据类型

基本数据类型:诸如int,char这一类,它们都是immutable

对象数据类型:诸如Integer、String这一类,它们有些是immutable,有些是mutable。

2.类型检查:

静态类型检查和动态类型检查

3.final的作用:

(1)final类无法派生子类

(2)final变量无法改变值或引用

(3)final方法无法被子类override

4.可变对象的优点:

最小化拷贝以及节约空间。

解决immutable对象存在的潜在危险:防御性拷贝

5.集合的snapshot图:

6.ADT

(1)操作:

Creators构造器、Producers生产器、Obsevers观察器、Mutators变值器

(2)设计ADT:

设计一个好的ADT需要靠开发者的经验来设计它的操作的spec,设计一个ADT要遵循下面三个原则:(1)设计简洁一致的操作(2)要足以支持client所需要的对数据的所有操作,且用操作的难度要低(3)要么抽象要么具体,不要混合——要么针对抽象设计,要么针对具体应用的设计。

(3)表示独立性:

设计一个好的ADT需要靠开发者的经验来设计它的操作的spec,设计一个ADT要遵循下面三个原则:(1)设计简洁一致的操作(2)要足以支持client所需要的对数据的所有操作,且用操作的难度要低(3)要么抽象要么具体,不要混合——要么针对抽象设计,要么针对具体应用的设计。

(4)AF、RI、Safety from rep exposure

在代码中用注释的形式记录AF(如何解释每个R值)和RI(rep中哪些数据是有效的)。

在代码中用注释记录表示泄露的安全声明,证明代码并未对外泄露其内部表示。比如传入和传出都使用了防御式拷贝。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值