11

我需要找出 Prototype DP 和 Flyweight DP 之间的一些区别我知道基本区别在于前者进行深度复制。而这封信使共享对象。我的讲师说还有更多的差异。

有人认识其他人吗?

4

2 回答 2

13

首先它们属于不同的类别:原型是创造的,享元是结构的。

在原型对象的创建过程中通过克隆,它简化了对象的创建。通过提出克隆请求,我们每次都会创建新的克隆对象。

在享元中,通过提出请求,我们尝试通过共享对象来尽可能多地重用它们。如果我们找不到这样的对象,将创建新的必需对象。这是为了资源优化而完成的。

虽然在 Prototype 中我们甚至可以克隆一个对象,但在我们使用大量对象的应用程序中使用享元模式是有意义的。

所有描述的对实施方面的影响也是如此。

于 2015-12-20T11:10:38.413 回答
6

在享元中,对象是不可变的。
在原型中,对象是可变的。

Flyweight 通过不创建新对象并尽可能重用现有对象来节省内存。
原型是关于重用现有对象以节省创建新对象的成本。

在创建多种类型的单个对象时使用享元。
在创建单一类型的单个对象时使用原型。

于 2018-05-02T13:24:41.353 回答