假设我们有一个名为IAccountRepo的接口和一个实现此接口的类AccountDbRepo,该类对SQL进行了调用。
现在,我们必须用AccountWebApiRepo替换此具体类(AccountDbRepo),这意味着该类将在webapi中进行操作。
知道具体类进行Web api调用,IAccountRepo的命名是否正确?我们应该将Repo重命名为Service吗?
编辑:
现在,如果您必须创建第二个接口ICarRepo,并且知道实现将是对webapi的调用。将其命名为Repo是正确的吗?
最佳答案
对接口进行编程的全部目的是,您应该能够在不更改系统正确性的情况下,用一个实现替换为另一个实现。这也称为Liskov Substitution Principle。
因此,如果您要基于具体的实现来重命名接口,那将是泄漏抽象。
因此,由于这个原因,您不应该重命名您的接口。正如罗伯特·C·马丁(Robert C. Martin)在Agile Principles, Patterns, and Practices中解释的那样,“客户端[…]拥有抽象接口”(第11章)。因此,您应该根据客户端的感知方式(而不是如何实现)来命名接口。
关于design-patterns - 仓库模式可以与webapis一起使用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23251254/