我是Design Patterns的新手,正在尝试了解它们的外观。现在我正在尝试了解工厂模式,我想知道我的示例是否是典型的工厂模式结构:
ShapeFactory类使用Shape-classes作为依赖项(并没有实例化它们)。 ShapeFactory必须实例化要被称为工厂的Shape类吗?这是一个准确的工厂模式图,还是Shape-classes之间的关系应该是关联?
答案 0 :(得分:1)
您的图表代表" 工厂方法模式"但是,稍微缺少一些重要的类或对象。看起来shape类是Concrete Creator类。它没有Creator类。
基本上,工厂方法设计模式有四个类和对象:
1)产品:它定义工厂方法创建的对象的接口。
2) ConcreteProduct :实现产品界面。
3)创建者:它声明了工厂方法,它返回了product类型的对象。
4) ConcreteCreator :它会覆盖返回的工厂方法和ConcreteProduct的实例
下图略微修改了您的给定图表,代表完整的工厂方法模式:
答案 1 :(得分:0)
好的,我想我得到了答案。这可以是具有方法的工厂模式(例如,CreateCircle(),CreateRectangle等),在实例化类的那些方法中具有隐藏的依赖性。
我认为依赖只针对依赖注入,但我想在方法中实例化类时可能存在依赖关系。