【问题标题】:What are some disadvantages of the GoF Flyweight design patternGoF Flyweight 设计模式有哪些缺点
【发布时间】:2020-09-18 06:06:50
【问题描述】:

我了解享元设计模式的好处,但我不确定它的确切缺点。 例如,我知道它可能是破坏封装,但这是我目前所能想到的,享元设计模式有哪些可能的缺点,关于这件事的文档很少。

【问题讨论】:

    标签: design-patterns flyweight-pattern


    【解决方案1】:

    在第 199 页,GoF 提到,

    享元可能会引入与传输、查找和/或计算外在状态相关的运行时成本,尤其是在它以前存储为内在状态的情况下。

    如果计算或查询外部状态而不是存储外部状态,则享元可以是空间与时间的权衡。当然,模式本身也增加了一些固有的复杂性:以前由每个对象拥有并直接访问的数据现在必须通过某种类型的工厂检索,这增加了额外的间接层。

    享元模式的狭窄适用性也可以被认为是一个缺点。根据 GoF,必须满足五个不同的条件才能利用该模式的优势。这就是我相信Java's String.intern() is not a Flyweight的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      相关资源
      最近更新 更多