Design By Contract(契约式设计)
来源:互联网 发布:猎豹网校java编程思想 编辑:程序博客网 时间:2024/06/05 17:12
1.前提
这是Bertrand Meyer在EL语言中提出的一个设计风格,流行了近20年。不过现在比较少用,不是很流行了,主要原因在下面提出
2.什么是契约式设计
契约式设计就是按照某种规定对一些数据等做出约定,如果超出约定,程序将不再运行,例如要求输入的参数必须满足某种条件
在scala中常用require和assume等
class BankAccount(val balance: Double) {require(balance >= 0.0)def debit(amount: Double) = {require(amount > 0.0, "The debit amount must be > 0.0")assume(balance - amount > 0.0, "Overdrafts are not permitted")new BankAccount(balance - amount)}def credit(amount: Double) = {require(amount > 0.0, "The credit amount must be > 0.0")new BankAccount(balance + amount)}}
3.目前在Test-Driven Development (TDD)用得比较多,很少带进主code中
4.缺点就是A drawback of using these methods and Ensuring is that you can’t disable these checks
in production也就是在生产中无法自由地把这些契约disable
5.真要引入这种风格到你的code时,得编写一个模块来随时关闭这种功能
0 0
- Design By Contract 契约式设计
- Design by Contract 契约式设计
- 契约式设计Design by contract
- Design By Contract(契约式设计)
- 译文:Design by Contract(契约式设计)
- Design by Contract(契约式设计)
- 按协约设计Design by Contract
- .NET 4.0中的新功能介绍:契约式设计 (Design By Contracts)
- .NET 4.0中的新功能介绍:契约式设计 (Design By Contracts)
- NET 4.0中的新功能介绍:契约式设计 (Design By Contracts)
- .NET 4.0中的新功能介绍:契约式设计 (Design By Contracts)
- design by contract?
- 《Design by Contract》介绍
- Design by Contract(1)
- Design By Contract 基于契约设计的个人理解
- 对于开发 0 bug 代码的思考——Design by Contract 契约设计
- 契约式设计
- 《Design by Contract原则与实践》勘误与评述
- 为什么你应该尝试 “全栈”
- Linux安装Tomcat 和Java-JDK
- IntelliJ IDEA使用教程四 MAVEN的集成与使用
- C# 使用Method进行转换
- PyCharm4.5更改字体设置
- Design By Contract(契约式设计)
- 1-基本操作
- 如何让超出范围的文本自动显示为省略号(CSS)
- 2-MATLAB数据类型
- JAVA实现EXCEL公式专题(七)——统计函数
- 提高Android开发效率——快捷键使用
- 【SpringMVC整合MyBatis】springmvc对RESTful支持
- 黑马程序员----单例设计模式
- 3-MATLAB基本运算