对规约内容的整理

归约的定义:

规约是客户端与实现者之间签订的“契约”,客户端的输入应当满足前置条件,实现者编写的程序
应当给出满足后置条件的结果。规约描述了方法的功能以及接口(“能做什么”),不需要依赖(也不应该透露)方法的具体实现。

规约的强度:

更强的规约:前置条件更弱,后置条件更强,满足更强规约的方法一定能替代满足更弱规约的功能,客户端往往喜欢规约强度更高的方法(有更大的自由度),但这增加了实现者的压力......
 

个人理解为什么前置更弱能使得强度更高,因为这样的规约使得使用者对于输入参数的限制更加低,自由度更大。而更强的后置条件使得使用者角度看返回更加具体清晰。

更强的规约内容实现的模块能直接替代更弱的模块。

这里直接来看一道学校的考试题:一般而言更强的规约是一个更小的圈,因为·这意味着其实现方法减少。故而图中A B的强度相等,又因为A B和C没有包含关系,故而C的规约强度实际没法和A、B比较。其次能看到D的包含了A B C,E包含了其他所有,故D和强度弱于A B C,E的强度弱于所有。

来看四个选项:

A、A 和B的spec对客户端无区别(T)因为A和B强度一样

B、C的spec强度比D大(T)由图可见

C、若遵循D的规约,客户端可无区别使用A、C(T)因为D的强度更弱,所以更强的实现都可以满足D的要求

D、所有用D的地方可以改成E(F)强度弱的不能随意替换强的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值