原型与Flyweight设计模式

时间:2015-12-19 09:13:28

标签: design-patterns flyweight-pattern prototype-pattern

我需要找出Prototype D.P和Flyweight D.P.之间的一些区别。 我知道,基本的区别在于前者制作了深层复制品。而这封信是共同的对象。 我的讲师说有更多的不同。

有人知道其他人吗?

2 个答案:

答案 0 :(得分:7)

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

在Prototype对象的创建过程中进行克隆,它可以简化对象的创建。通过发出克隆请求,我们每次都会创建新的克隆对象。

在Flyweight中,通过发出请求,我们尝试通过共享来尽可能多地重用对象。如果我们找不到这样的对象,将创建新的必需对象。它正在进行资源优化。

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

所有描述的影响也都在实施方面。

答案 1 :(得分:2)

在Flyweight中,对象是不可变的 在Prototype中,对象是可变的。

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

创建多种类型的单个对象时使用Flyweight 在创建单一类型的单个对象时使用Prototype。