我要问你对设计问题的看法。
问题基本上如下:对象的公共方法应始终检查其输入参数中的先决条件,还是更好地对调用者负责并“信任流程”?
我不是在谈论明显的前提条件,例如检查 null 以避免 null 引用异常,而是指方法参数中的业务前提条件。这通常发生在 DDD 服务中,它对输入参数执行某种验证并返回一个包含有关该验证的反馈的对象。
例如,考虑一个CheckPerson
具有公共方法的类,该方法PerformCheck
带有一个 type 参数Person
。想象一下,有一条商业规则说这张支票对金发碧眼的人没有意义。
在我看来,这个检查很重要,方法名称应该反映这个规则(类似于PerformCheckForNonBlondePerson
)。
我应该添加这些检查,还是应该信任调用者?