C#.NET Core-工厂方法与构造方法

问题描述

我有一个带有仅设置私有属性的构造函数的类。此类在许多自动化测试中使用,我需要添加另一个私有属性。有什么好的方法可以避免在测试方法中更新类的实例? 我应该重载构造函数还是使用工厂模式?

我认为当新的私有属性在测试用例(例如添加ILogger)中不重要时,我可以重载构造函数,但是如果测试用例中需要私有属性,则最好使用工厂方法。 你有什么建议?

解决方法

您真的想坚持通过构造函数为所有依赖项(例如ILogger或诸如此类)进行依赖项注入。这样,您就可以正确利用ASP.NET Core依赖项注入。

对于您不想在单元测试场景中使用的依赖项,您可能想使用MOQFake It Easy或类似框架来模拟它。

这样,您可以肯定地知道,一旦创建了类,ILogger等将存在并且有时可能不为null并设置其他时间。

,

这就是我的理解;所以我分享是为了帮助别人。

工厂模式是关于创建s.th的,因此命名为Factory。如果构造函数变得复杂,或者内部方法涉及创建类(即对象)的实例,则表明使用了工厂方法。

例如您想本地化实例化复杂对象的逻辑

如果您有FooFactory类,则该类将创建Foo的实例,并封装实现的详细信息。

因此仅配置依赖项注入的构造函数不应使用Factory模式。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...