首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBC (契约式设计)和AOP(面向方面编程)

DBC (契约式设计)和AOP(面向方面编程)
EN

Stack Overflow用户
提问于 2011-04-19 15:56:50
回答 3查看 610关注 0票数 2

我正在读《实用程序员》,一节一节地谈到了Effel如何实施DBC的前置条件和后置条件,而Java、C#、C++则没有。我想到的第一件事就是使用AOP (所以我在谷歌上搜索了DBC和AOP,只有旧的链接出现了)

那么,对于在Java或C#中使用面向方面编程来增强DBC语言,程序员还有什么想法呢?

EN

回答 3

Stack Overflow用户

发布于 2011-04-19 16:05:58

虽然我喜欢DBC的想法,但在我看来,AOP不是这个任务的武器。

方面需要特殊的基础设施使构建过程复杂化。

执行契约的方面需要在生产代码中运行,存在实际引入错误而不是阻止错误的风险。

方面不提供任何编译时安全性,这实际上是DBC的主要目标。

我不知道C#,但在java领域似乎还没有成熟的DBC选项。因此,我倾向于将契约作为测试来实现。尽管不像我应该的那样频繁

票数 3
EN

Stack Overflow用户

发布于 2011-04-19 16:39:37

C# (实际上是.NET)使用Code Contracts框架和工具支持DBC。

它提供了一个API,用于声明您的前、后和不变条件,以及执行运行时检查、静态检查和生成文档的能力。

该框架内置于.NET框架4中。

票数 2
EN

Stack Overflow用户

发布于 2011-04-19 16:02:35

看看Contract4j,它使用AspectJ来强制执行DBC。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5713273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档