我需要找出原型模式和享元模式之间的一些区别。我知道最基本的区别在于前者进行深度复制,而后者使用共享对象。我的讲师说还有更多的不同之处。
有人知道其他的区别吗?
我需要找出原型模式和享元模式之间的一些区别。我知道最基本的区别在于前者进行深度复制,而后者使用共享对象。我的讲师说还有更多的不同之处。
有人知道其他的区别吗?
在享元模式中,对象是不可变的。
在原型模式中,对象是可变的。
享元模式旨在通过尽可能重用现有对象而不创建新对象来节省内存。
原型模式旨在通过重用现有对象以节省新对象创建的成本。
当创建多种类型的单个对象时使用享元模式。
当创建单个类型的单个对象时使用原型模式。
享元对象是不可变的。一旦创建,其状态就无法更改。 由于这个原因,享元对象可以被多个客户端使用而没有任何问题,而在对象池中,一个对象一次只能被一个客户端使用。
原型将通过克隆创建重复的对象,但它的状态不需要是不可变的。它只是根据给定模板按需创建另一个对象。也就是说,我们在这里创建了一个对象,因此它属于创建型模式。
在享元模式中,您不会创建新对象,而是共享不可变对象。