2011-01-24 47 views

回答

3

所以,我在這裏是新的,並提出這個警告,我正在提出我的答案。

在我看來,目前爲止人們只能採用像「單一責任原則」這樣的概念。對我而言,變換類的單一職責是管理從一種格式規範到另一種格式規範的數據轉換。一些想法:

  1. 在嚴格的條款,如果該格式的變化之一,你理論上仍然需要格式轉換器的先前版本的轉換原有DAT(向後兼容)。你永遠不知道什麼時候有人可能不會收到關於格式變化的備忘錄。或者你可能遇到地下室某處某種格式的A v1格式的數據。因此,班級的單一責任仍然是將數據從格式A1.0轉換爲格式b1.0。

  2. 如果其中一個規格改變了,您現在必須創建一個新的VERSION類,對吧?假設某人修改了格式A的規範。現在您需要一個類來管理從格式A1.1到B1.0的數據轉換。您已經創建了一個負責一個新課程。

雖然在項目的範圍,你可以不考慮需要向後兼容性的要求,在SRP概念而言,我的理解是,在一個或兩個的格式規範的變化要求定義一個新的階級,而不是從流行病學理論的最嚴格的角度來看,暗示着不止一項責任。最後,如果您將數據從一種格式映射到另一種格式作爲該類的單一責任,那麼對於其規範的改變仍然只需要改變該類的單個作業。

舉例說明的最後一個例子。假設我班的責任是將特定的紅色變成特定的粉紅色。然後有一天,首席設計師決定他想要一個更亮的粉紅色作爲輸出,我的規格的一面已經改變,但我班的責任卻沒有。第二天,在最高企業層面決定,新的紅色標準更像栗色。現在我的輸入規範已經發生了變化,但我的班級的職責卻沒有。我可能會決定創建一個新類,並保留版本1.0的持久性,或者我可能只更新現有版本。在任何一種情況下,班級仍然有單一的責任;將紅色規格映射到粉紅色規格。