JW.*_*JW. 7 oop domain-driven-design factory-pattern
在埃里克·埃文斯的"领域驱动设计"一书的第6章"工厂"(第139页)一节中,它说明如下:
"任何优质工厂的两个基本要求是:
...
"2. FACTORY应该被抽象为所需的类型,而不是创建的具体类."
您能否详细说明关于基本要求2的声明的含义.
CAR*_*OTH 11
我认为这意味着你永远不应该从你的工厂返回具体类型.例如,如果你有一个接口,让我们说ISomething,一个anstract类SomethingBase,最后是一些实现这个接口并继承自基类的类.您的创建方法应该返回基类型的接口类型intead.我认为这就是主意.
public ISomething Create() { ... }
Run Code Online (Sandbox Code Playgroud)
代替
public SomethingBase Create() { ... }
Run Code Online (Sandbox Code Playgroud)
卡洛斯,我希望它有所帮助.
Carlos Loth的回答是正确的,但您应该始终记得使用抽象工厂,因为这样您就可以将混凝土工厂与具体类型相结合,而不会将消费者与具体工厂或类型联系起来.
public interface ISomethingFactory
{
ISomething Create();
}
public class SomethingFactory : ISomethingFactory
{
public ISomething Create()
{
return new Something();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2376 次 |
| 最近记录: |