gpt4 book ai didi

java - 这是工厂方法的正确用法吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:31 27 4
gpt4 key购买 nike

据我了解,工厂设计模式用于创建对象而不是构造函数

在上一个问题中,我解释了我的情况:
我有一个复杂的网络表示为超图超图顶点来自各种类型:图像,标签....
我应该创建数千个顶点手动创建它会很困难!所以我认为工厂模式在这种情况下可能对我有帮助

我用 yUML 画了两个可能的图,但我不能决定哪个最适合我的情况

first diagram

second diagram

最佳答案

实际上,两者都描述了工厂方法模式。

但是,正如我们所说的多个工厂,第一个图像是更好、耦合更少、可扩展性更强、更易于维护的方法。

只是,在第一张图中,由于您的图表还很小,所以最好在 AbstractVertexFactoryVertex 之间画一条虚线,因为有一个 dependency relationship在这些类之间。

此外,第二张图片缺少所有依赖虚线。这并没有使这个图不正确,它仍然描述了工厂方法模式,唯一的缺点是没有提到的行会更困惑。

解释为什么第一个比第二个好:

  • 耦合度较低:在第一种情况下,如果您更改/删除 TagVertexImageFactory 的客户端(以及可能的其他工厂) 受到影响。
  • 更具可扩展性更易于维护:相同的原则。如果您更改产品(在您的场景中为 Vertex)类,则不会影响其他工厂的客户端。您还可以自由添加工厂,而无需更改现有代码。

关于java - 这是工厂方法的正确用法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15954968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com