如何在域驱动设计中将Intefaces与工厂模式一起使用?

Mar*_*ers 3 oop design-patterns domain-driven-design factory domain-object

是否有意义默认使用您的域对象工厂的接口,或应接口预留,只有当你需要他们的工厂类?

public IUserFactory
{
    User CreateNewUser();
}

public UserFactory : IUserFactory
{
    public User CreateNewUser()
    {
        return new User();
    }
}
Run Code Online (Sandbox Code Playgroud)

Ade*_*ari 7

在你给出的例子中,我甚至不知道为什么你需要去工厂.

工厂模式的本质是"定义用于创建对象的接口,但让子类决定实例化哪个类.Plant方法允许类将实例化延迟到子类." - 维基百科

您是否拥有不同类型的用户,或者用户本身就是某种类型的用户.可能是你没有清楚地阐述这件事.我们通常在抽象工厂方法模式中使用接口,我们需要处理多个相关对象族.

注意:不要忘记,模式可以帮助我们,这并不意味着我们必须使用它们,因为它们是可用的,无论我们是否需要它们.


Otá*_*cio 5

并非所有东西都必须有接口; 如果你有一个执行的东西,并没有理由有任何其他的我不明白为什么定义一个接口.