我正在創建一個文本編輯器。我的文本框控件是名爲Editor
的TextBox
的子類。我的主要形式MainForm
有一個Editor
的實例。這是不錯的設計?
當MainForm想要加載文本文檔時,它調用Editor.LoadDocument(string path)
。 Editor.LoadDocument
來電Document.Load(string path)
。
保存時會發生同樣的情況:MainForm --> Editor.SaveDocument --> Document.Save
。
看來Editor
在這裏是不必要的中間人,所以我想讓MainForm
直接訪問Document
:editor.Document.Load(path)
。 Editor
仍然會創建和維護Document
;它只是提供直接訪問它。
注意這將創建一個雙向關聯:Editor
將有一個Document
和Document
將有一個Editor
(Document
使用Editor.Text
並訂閱Editor.TextChanged
)。
我有兩個問題:
這是好的設計?
當應用程序退出時,雙向關聯是否會產生與垃圾收集有關的任何放緩?
嗯,我不確定這會工作,因爲Document訂閱Editor.TextChanged,並且文檔在修改文本時將其設置爲true。無論如何,我都會關注MVC。謝謝。 – Tom
@Tom:內容存儲在哪裏?聽起來像你'編輯器'有責任模型和視圖混合。 –