Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 如果我';我没有使用通用接口?_Design Patterns - Fatal编程技术网

Design patterns 如果我';我没有使用通用接口?

Design patterns 如果我';我没有使用通用接口?,design-patterns,Design Patterns,我决定不对我的各种存储库使用通用接口。相反,我为每个存储库提供了一个接口,其中包含一个“真实”存储库和一个继承每个存储库的模拟存储库。这是否意味着每个存储库也需要一个单独的factory类 如果我能在这里做出更好的设计决策,我很乐意听到 IPersonRepository PersonRepository : IPersonRepository PersonRepositoryMock : IPersonRepository 这意味着每个存储库都有单独的工厂类,或者每个工厂都有单独的创建方法

我决定不对我的各种存储库使用通用接口。相反,我为每个存储库提供了一个接口,其中包含一个“真实”存储库和一个继承每个存储库的模拟存储库。这是否意味着每个存储库也需要一个单独的factory类

如果我能在这里做出更好的设计决策,我很乐意听到

IPersonRepository

PersonRepository : IPersonRepository
PersonRepositoryMock : IPersonRepository

这意味着每个存储库都有单独的工厂类,或者每个工厂都有单独的创建方法。这是您的决定的一个结果。

您只需要设置Di容器,以便在应用程序中使用“真实”存储库,在测试中使用“假”存储库

或者更好的方法是,使用模拟库,这样就不需要模拟存储库。然而,内存中的repo将对devel有很大帮助,因为您可以创建测试(稍后可用于真正的repo)并在不接触数据库的情况下查看应用程序的运行情况