我在网上学习抽象工厂模式并有一个基本问题。大多数类图(包括Wikipedia上的一个)表明客户端引用了AbstractFactory和AbstractProduct。客户实际上没有对具体工厂的引用。但是,我在互联网上看到的所有code都是在客户端代码或主要方法中创建具体工厂的实例。这是正确的实施吗?客户只需要知道抽象工厂和抽象产品是不是真的?
答案 0 :(得分:1)
“我们是否需要在抽象工厂中将具体工厂公开给客户 图案“
显然不会或者说会破坏模式的目的,阻止轻松地将一个工厂换成另一个工厂(而另一个工件系列换另一个工厂)。
我在互联网上看到的所有代码都是在客户端代码或主要方法中创建具体工厂的实例
在代码中必须有一个混凝土工厂实例化的地方,但那将在Composition Root中。其他任何地方都是错的。