假設我有一個ChatDataProvider類,它與服務器通信幷包含Chat類型的對象列表(包含Post類型的對象等)。如果我想transfert這個聊天到其他類(以顯示它們),我有幾個可能的原因:在整個應用程序中使用相同的數據還是複製它?
- 發送到List對象的引用
- 「淺」拷貝數據:創建新目錄包含對原始對象
- 深層複製數據
我猜1 & 2.將被視爲糟糕的設計,因爲該數據沒有封裝引用。但它也有好處:
數據的一致性(例如,如果條目的排序變化,我要麼需要傳播這一變化的深拷貝版本,應用相同的順序出現,否則我就需要得到該列表的一個新的深層副本)
減少內存使用
Keepting整個應用程序一致的數據創建了一個很大的開銷實現是容易出錯。因爲這是一個封閉的應用程序,所以不會發生不應該被傳播(自動)的數據中的「未經授權的」更改。
那麼你會選擇哪一個,爲什麼?兩個opions都有效嗎?
這個問題可能有答案,但我真的不知道要搜索什麼。所以如果有人知道一些鏈接/資源,那很好。