【发布时间】:2013-04-01 14:42:08
【问题描述】:
我总是看到contract 这个词,它似乎有不同的含义,或者至少在我看来是这样的(我不是以英语为母语的人),所以当我看到“合同”这个词时,我无法确定我应该理解和期待什么。我不知道其他人是否有同样的麻烦,但这让我很烦恼。例如,当我看到“接口”时,我会想到“抽象、依赖注入、继承等”。而且我知道我在寻找什么,并且它正在我的脑海中轻松而轻松地形成。
但是当谈到 contract 这个词时,我无法想象模式、类等。无论它是什么。它是使用interface 或class 或attribute 等形成的吗?
例如,有一个类 here(在 Json.NET 中)谈论名为 IContractResolver 的东西,页面解释了它的用途:
IContractResolver 接口提供了一种自定义方式 JsonSerializer 将 .NET 对象序列化和反序列化为 JSON 无需在您的类上放置属性。
解释很容易理解,但当我看到Contract 时,我不能只是形成想法,我不能说:
“嗯,我期待一些方法可以做到这一点,这样我就可以 覆盖它,然后我在这里/那里使用这个类来改变/实现 一些功能等等。”
这让我很烦恼。我读了一些关于它的文章,但他们在谈论Design by Contract,对于那些对“合同”含义有疑问的人来说,这不是什么有用的东西。
那么有人可以解释一下我应该如何理解这个术语以及当我看到它时我应该期待什么?如果您可以添加一些示例代码以便我将其可视化,那就太好了。
【问题讨论】:
标签: c# .net terminology