Flyweight模式困境

时间:2018-06-02 15:27:03

标签: design-patterns flyweight-pattern

这个Flyweight DP tutorial显示了对Flyweight模式的一个很好的解释。

无论如何,我们要说我们要更改this.height = 200;的字体大小(假设属性不受保护)。这意味着所有字体大小都将被更改,因为对象是引用类型。

让我们说这是一个文本编辑器,我们只想更改特定字母的字体大小(单个字母实例,而不是全部)。所以现在出现问题,因为如果我们以某种方式更改字典中对象的字体大小,则所有出现的内容都将被更改。我怎么处理这个?

1 个答案:

答案 0 :(得分:0)

我认为这是一个可能适合的解决方案。它是flyweight中的flyweight,但在C#中,它有点简化,但我认为你应该得到这个概念。我们的想法是设置一个外观来获取参数化类。在那个外观里面,我有一个字典,为新的字体大小制作新的工厂。这可能看起来很奇怪,但要注意flyweight是一个创建设计模式,它不会存储文本本身,只允许您访问相同的对象。而且州显然不一样,所以我认为一个不同的工厂可能是合理的。

Type