假设我有一个ChatDataProvider类,它与服务器通信并包含Chat类型的对象列表(包含Post类型的对象等)。如果我想transfert这个聊天到其他类(以显示它们),我有几个可能的原因:在整个应用程序中使用相同的数据还是复制它?
- 发送到List对象的引用
- “浅”拷贝数据:创建新目录包含对原始对象
- 深层复制数据
我猜1 & 2.将被视为糟糕的设计,因为该数据没有封装引用。但它也有好处:
数据的一致性(例如,如果条目的排序变化,我要么需要传播这一变化的深拷贝版本,应用相同的顺序出现,否则我就需要得到该列表的一个新的深层副本)
减少内存使用
Keepting整个应用程序一致的数据创建了一个很大的开销实现是容易出错。因为这是一个封闭的应用程序,所以不会发生不应该被传播(自动)的数据中的“未经授权的”更改。
那么你会选择哪一个,为什么?两个opions都有效吗?
这个问题可能有答案,但我真的不知道要搜索什么。所以如果有人知道一些链接/资源,那很好。