设计模式 - 了解工厂模式

时间:2017-11-01 20:33:22

标签: design-patterns uml factory-pattern

我是Design Patterns的新手,正在尝试了解它们的外观。现在我正在尝试了解工厂模式,我想知道我的示例是否是典型的工厂模式结构:

enter image description here

ShapeFactory类使用Shape-classes作为依赖项(并没有实例化它们)。 ShapeFactory必须实例化要被称为工厂的Shape类吗?这是一个准确的工厂模式图,还是Shape-classes之间的关系应该是关联?

2 个答案:

答案 0 :(得分:1)

您的图表代表" 工厂方法模式"但是,稍微缺少一些重要的类或对象。看起来shape类是Concrete Creator类。它没有Creator类。

基本上,工厂方法设计模式有四个类和对象:

1)产品:它定义工厂方法创建的对象的接口。

2) ConcreteProduct :实现产品界面。

3)创建者:它声明了工厂方法,它返回了product类型的对象。

4) ConcreteCreator :它会覆盖返回的工厂方法和ConcreteProduct的实例

下图略微修改了您的给定图表,代表完整的工厂方法模式:

enter image description here

答案 1 :(得分:0)

好的,我想我得到了答案。这可以是具有方法的工厂模式(例如,CreateCircle(),CreateRectangle等),在实例化类的那些方法中具有隐藏的依赖性。

我认为依赖只针对依赖注入,但我想在方法中实例化类时可能存在依赖关系。