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