我需要保存我正在製作的程序的書籤。書籤是Xposition,Yposition和縮放。我應該只是將所有書籤讀寫到文本文件,還是應該將它們放入一個Bookmarks對象中並對其進行序列化。我感興趣哪一個會被認爲是更好的面向對象設計。將用戶數據保存在文本文件或序列化對象中
回答
無論如何,我會創建類書籤。然後,我會創建一個接口BookmarkSerializer與方法serialize()
和deserialize()
。然後我可以創建我的BookmarkSerializer的第一個實現。例如,它可能基於本機Java序列化,純文本,csv,xml等。所以,我可以選擇一個,然後在我的應用程序中使用它。
當一個實現沒有足夠的服務我可以添加其他。關鍵是在這種情況下,除了初始化串行器本身之外,我不需要改變應用程序中的任何內容。
我認爲在你的情況下,你應該從最簡單的CSV實現開始,如果它不夠,可以根據需要添加儘可能多的實現。
使用對象通常是最好的面向對象設計。
爲了便於支持,我用一個文本文件作爲其易於查看(檢查它右)和編輯(解決它)
我想我會去的文本文件。精通技術的用戶也可能更喜歡它。 thx – Fractaly
我有我的CSV格式的數據文件,以便他們可以在電子表格應用程序中進行編輯。 –
我建議保存到跨平臺的文本文件。實際上它不是一個面向對象的考慮因素,因爲當你使用文本文件方法時,你仍然可以在oo中進行編程,也就是說,具有文本文件源的數據訪問對象不違反oo概念。
java序列化是脆弱的,所以如果你的意圖是長時間保存一些配置數據,這可能會跨越你的程序的多個版本,那麼可能文本文件是你最好的選擇。
格式確實是你的,XML,JSON,CSV
,如果你決定使用Java序列化,我會推薦給您的數據存儲到一個HashMap
和包裝你周圍的地圖存取器
public class Config {
private HashMap map;
Congif(HashMap map) { this.map = map; }
<T> T get(Class<T> clazz, String key) {
return (T) map.get(key);
}
void put(String key, Serializable value) {
map.put(key, value);
}
}
- 1. 應用程序的配置保存到文件或對象序列化
- 2. 保存對象/序列化
- 3. 序列化,保存對象
- 4. 文件對象序列化
- 5. 將對象序列化成dat文件
- 6. 將對象保存到數據庫時,我應該序列化對象或保存每個屬性
- 7. 如何序列化對象並將其保存到Android中的文件中?
- 8. 將java對象序列化爲文本文件
- 9. R:將對象序列化爲文本文件並返回
- 10. 用文本文件中的數據初始化對象數組
- 11. 如何將對象的模板化陣列保存到文件?
- 12. 將本地化文本存儲在數據庫或資源文件中?
- 13. 將文本保存爲文件或數據庫效率更高?
- 14. 將序列化數據存儲在Neo4j中的對象中
- 15. Hibernate的序列化/反序列化對象,並將其保存
- 16. 將詳細數據保存在數據庫或文件中?
- 17. 將循環數據保存在C#中的文本文件中
- 18. 將Java對象保存到文件中
- 19. 將Class對象保存爲Java中的文本文件
- 20. 我應該在哪裏保存序列化的數據文件?
- 21. 通過序列化保存我的對象或創建一個XML文件
- 22. C++ Boost對象序列化 - 定期保存以保護數據
- 23. C#使用streamreader從JSON文本文件讀取數據並將其反序列化到對象列表中
- 24. 如何將iphone應用程序中的數據保存到文本文件並保存在文檔中
- 25. 使用python將文件列表保存到文本文件中
- 26. 在c文件中搜索或查找IO序列化對象#
- 27. 爲什麼要將序列化的對象保存在數據庫中?
- 28. 將數據從列表保存到文本文件
- 29. 使用javascript將數據保存到文本文件中
- 30. 將文本文件保存在數據庫中並檢索
我已經制作了書籤對象,但是我正在計劃一個返回要寫入文本文件的字符串的getString()方法。看起來他們會以類似的方式工作,但這樣我就可以爲許多書籤創建一個文本文件。 – Fractaly
成功實施並且沒有任何瑕疵(尚未完成) – Fractaly