软件构造4

1.参数类型是否匹配,在静态类型检查阶段完成。返回值类型是否匹配,也在静态类型检查阶段完成。

2.精确的规约有助于划分责任,规约可以扮演防火墙的角色。只讲能做什么,不讲怎么实现。可以通过规约判断方法的等价性。

3. 静态类型声明是一种规约,可据此进行静态类型检查static checking。

4. spec变强:更放松的前置条件+更严格的后置条件。在比较后置条件时,应该在满足对方的前置条件的情况下进行判断。一旦规约1比规约2强,那么可以用规约1替换规约2。
5.抽象数据型由操作定义,与内部实现无关。

6.可变与不可变数据类型。可变数据类型:提供了可改变其内部数据的值的操作。不可变数据类型: 其操作不改变内部值,而是构造新的对象。

7. 构造器:可能实现为构造函数或静态函数。构造器被实现为静态函数,通常被称为工厂方法。工厂方法用于创建对象,属于静态方法;实例方法在创建对象后才能调用函数并且工作。

生产器:新产生的数据与旧的数据类型一致。

观察器:数据类型不一致。

变值器:改变函数内部对象属性的方法。变值器通常返回void则必然意味着它改变了对象的某些内部状态。也可能返回非空类型。

8. 抽象空间A:抽象值构成的空间,即client看到和使用的值。表示空间R:内部表示的值构成的空间,其中既有非法的表示值,也有合法的表示值。AF:表示空间R与抽象空间A的映射关系。一定是满射,但未必是单射,也未必是双射。即R中的非法值没有映射对象,R中的多个合法值可能映射到A中相同的值。AF应当显示的以注释的形式写在代码中,以便于理解。

9.表示独立性:不暴露内部属性与实现方法。

10.RI:一种要求,说明R中的值哪些是合法的,哪些是非法的。RI也应该显示的以注释的形式写在代码中,用于时刻提醒自己。

11.在所有可能改变rep的方法内都应该调用checkRep来检查。checkRep只是自己用于在编程时防止出错或产生非法的表示值所定义的方法。这是一个良好的编程习惯。

12.设计ADT方法:(1) 选择R和A;(2) RI :合法的表示值;(3) AF:如何解释合法的表示值 。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值