在内存方面,“实现”比“扩展”更有效吗?

时间:2016-03-25 03:19:11

标签: java oop design-patterns

我正在研究模式,我对Prototype模式(对象组合)和内存占用有疑问。

这种模式是Java中缺少多重继承的可能解决方案,但我们假设Java有多重继承。

在Prototype模式中使用接口的实现,比为内存进行多重继承更有效吗?

在子类上做“扩展”,在内存占用方面与在该子类上实例化新对象相同吗?

1 个答案:

答案 0 :(得分:0)

每个Java对象都有一个header,所以我会假设'嵌入'超类对象比在另一个对象中组合时消耗更少的内存(在第一种情况下,它们共享相同的对象标题)。此外,在组合的情况下,父组件具有对组合对象的引用(指针)。

所以,我会说"实现"效率较低,但我很难想到一个在实践中这很重要的用例。

PS我没有看到你的问题与Prototype模式有什么关系。