注意:對於長問題抱歉!對象應該將自己寫入文件中,還是另一個對象對其執行I/O操作?
我想了解面向對象背後的一些關鍵領域,我無法以某種方式決定我的特定問題。
比方說,我有一個充滿了可愛數據的對象。班bob。
Bob myBob = new Bob("This string is data");
比方說,我想myBob的內容保存到一個XML文件(bob.xml)
我是否應該在鮑勃的對象行爲寫的內容了,或者我應該做myBob這個?
案例1:對象法案
Writer myWriter = new Writer(myBob, "C:\\bob.xml");
案例2:保存方法
myBob.Save("C:\\bob.xml");
有些人是偏袒的選擇之一,因爲它意味着如果寫入文件的代碼是改變了,它不需要在每個Save方法中更新;促進代碼重用我想。我的問題是從沒有訪問者的私有數據中獲取所有數據。
選項二的情況是,該方法只對該對象所持有的數據起作用,這就是它應該的方式。不受其他物體的干擾。
或者是我的問題之一,這些「案件依賴」問題的答案?如果是這樣,你怎麼知道什麼時候一種方法比另一種更受歡迎?
那麼,情況2可能是正確的,這實際上取決於...在OO設計中沒有明確的是或否。例如,你也可以考慮你的對象實現一個IWriter接口的場景。 – 2009-05-23 14:24:34
@divo:總是有例外,那就是設計的本質。這不應該被明確地呼籲。 (這也是爲什麼我使用「一般」來限定我的聲明的原因。) – 2009-05-23 15:22:35
反序列化對象的建議策略是什麼?如果傳入一個BinaryReader對象並讓這個類反序列化它會好嗎? – 2009-05-24 03:56:33