原型与 Flyweight设计模式

Mat*_*tan 8 design-patterns flyweight-pattern prototype-pattern

我需要找出Prototype DP和Flyweight DP之间的一些区别我知道基本的区别在于前者制作了深层拷贝.而这封信是共同的对象.我的讲师说有更多的分歧.

有人知道其他人吗?

小智 9

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

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

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

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

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


Sha*_*war 6

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

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

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