與an earlier question of mine部分相關,我有一個系統,我必須將複雜數據存儲爲一個字符串。我不是將這些字符串解析爲各種單獨的對象,而是創建了一個包含所有這些對象的類,並且它具有一些解析器邏輯,將所有屬性編碼爲字符串,或者解碼字符串以獲取這些對象。這很好,很好。這個問題不是關於解析器本身,而是關於解析器邏輯的位置。將它作爲一種財產或作爲一種方法是更好的選擇嗎?什麼時候使用方法而不是類定義的屬性?
在屬性的情況下,說public string DataAsString
,所述get
存取將容納所述邏輯來編碼的所有數據轉換爲字符串,而set
存取將在類實例解碼輸入的值和設置的所有數據的。看起來很方便,因爲輸入/輸出確實是一個字符串。
在方法的情況下,一種方法將是Encode()
,它返回編碼的字符串。然後,構造函數本身可以存儲解碼字符串的邏輯並需要字符串參數,或者我寫一個Decode(string str)
方法,它被單獨調用。無論哪種情況,它都會使用一種方法而不是屬性。
那麼,有沒有這些路徑之間的功能差異,在代碼的實際運行條件怎麼樣?或者它們基本上是否相同,然後歸結爲個人偏好選擇還是哪個更好?而在那種問題中,哪一個看起來更清潔呢?
我完全同意! +1 – 2010-04-20 13:22:05