CreateContract
和 ResolveContract
defaultContractresolver实例的方法有什么区别?
如果查看代码,您会注意到ResolveContract
是DefaultContractResolver
的唯一公共方法(不计算构造函数)。此方法由IContractResolver
接口定义,DefautContractResolver
实现了该方法。它用于 resolve (即,获取或创建)特定对象类型的JsonContract
。
DefaultContractResolver
在内部使用缓存。当调用ResolveContract
时,它首先在其缓存中查看给定类型是否已经存在现有合同。如果是这样,它将返回;否则,它调用受保护的CreateContract
方法来创建合同并将其添加到缓存中。
因此,简而言之,CreateContract
只是DefaultContractResolver
的实现细节,而ResolveContract
是公共接口。