相关疑难解决方法(0)

为什么我们需要抽象工厂设计模式?

大多数定义说:

抽象工厂提供了一个接口,用于创建相关对象的族,而无需指定其具体类

抽象工厂模式的用途是什么,因为我们可以通过创建具体类本身的对象来实现任务.为什么我们有一个工厂方法来创建Concrete类的对象?

请提供我必须实现abstractFactory模式的任何现实生活示例?

design-patterns abstract-factory

123
推荐指数
4
解决办法
8万
查看次数

哪个DI容器会满足这个要求

这是我想要的DI容器:

public class Class
{
   public Class(IDependency dependency, string data)  { }
}

var obj = di.Resolve<Class>(() => new Class(null, "test"));
Run Code Online (Sandbox Code Playgroud)

兴趣点:

  1. 可以在构造函数中解析依赖项和数据.
  2. 可以使用类型安全语法来传递构造函数参数(确切的语法可能会有所不同).是的,我可以通过从(Expression.Body作为NewExpression)获取构造函数参数来自己完成 - 但我需要一种方法来检测容器中注册的参数.

另一个主要要求是我希望自动拾取我的组件,即我不想注册类 - 我希望IoC能够选择它,因为它知道如何解决IDependency.

此外,Property Injection有时也很有用,但这是可选的.

问题实际上是关于功能的组合 - 拥有所有功能 - 类型安全,参数,自动拾取......很容易检查一个功能,但除非一个人熟悉,否则它们的组合不容易验证特定容器并了解其功能.这样的问题.

c# dependency-injection

11
推荐指数
1
解决办法
2755
查看次数