我需要找出 Prototype DP 和 Flyweight DP 之间的一些区别我知道基本区别在于前者进行深度复制。而这封信使共享对象。我的讲师说还有更多的差异。
有人认识其他人吗?
我需要找出 Prototype DP 和 Flyweight DP 之间的一些区别我知道基本区别在于前者进行深度复制。而这封信使共享对象。我的讲师说还有更多的差异。
有人认识其他人吗?
首先它们属于不同的类别:原型是创造的,享元是结构的。
在原型对象的创建过程中通过克隆,它简化了对象的创建。通过提出克隆请求,我们每次都会创建新的克隆对象。
在享元中,通过提出请求,我们尝试通过共享对象来尽可能多地重用它们。如果我们找不到这样的对象,将创建新的必需对象。这是为了资源优化而完成的。
虽然在 Prototype 中我们甚至可以克隆一个对象,但在我们使用大量对象的应用程序中使用享元模式是有意义的。
所有描述的对实施方面的影响也是如此。
在享元中,对象是不可变的。
在原型中,对象是可变的。
Flyweight 通过不创建新对象并尽可能重用现有对象来节省内存。
原型是关于重用现有对象以节省创建新对象的成本。
在创建多种类型的单个对象时使用享元。
在创建单一类型的单个对象时使用原型。