概念 關註點分離(Separation of concerns,SOC)是對只與“特定概念、目標”(關註點)相關聯的軟體組成部分進行“標識、封裝和操縱”的能力,即標識、封裝和操縱關註點的能力。 概念 關註點分離(Separation of concerns,SOC)是對只與“特定概念、目標”(關註點 ...
概念
- 關註點分離(Separation of concerns,SOC)是對只與“特定概念、目標”(關註點)相關聯的軟體組成部分進行“標識、封裝和操縱”的能力,即標識、封裝和操縱關註點的能力。
- 是處理複雜性的一個原則。由於關註點混雜在一起會導致複雜性大大增加,所以能夠把不同的關註點分離開來,分別處理就是處理複雜性的一個原則,一種方法。
- 關註點分離是面向方面的程式設計的核心概念。分離關註點使得解決特定領域問題的代碼從業務邏輯中獨立出來。
- 業務邏輯的代碼中不再含有針對特定領域問題代碼的調用(將針對特定領域問題代碼抽象化成較少的程式碼,例如將代碼封裝成function或是class),業務邏輯同特定領域問題的關係通過側面來封裝、維護,這樣原本分散在整個應用程式中的變動就可以很好的管理起來。
具體說明(概念比較難理解)
- 好的架構設計必須把變化點錯落有致地封裝到軟體系統的不同部分。要做到這一點,必須進行關註點分離。
- 好的架構必須使每個關註點相互分離,也就是說系統中的一個部分發生了變化,不會影響其他部分。
- 即使需要改變,也能夠清晰地識別出那些部分需要改變。
- 如果需要擴展架構,影響將會最小化,已經可以工作的每個部分都將繼續工作。
上述論述中的四句話總結:
- “系統中的一個部分發生了變化,不會影響其他部分。”
- “即使需要改變,也能夠清晰地識別出那些部分需要改變。”
- “如果需要擴展架構,將影響最小化,已經可以工作的每個部分都將繼續工作。”
結論:
- 關註點分離原則不僅體現在問題求解、演算法設計、軟體設計等設計方法中,同時也體現在軟體開發過程、軟體項目管理以及軟體開發方法學等諸多方。
- 在某種意義上,正是對軟體開發不同關註點的分離視角和關註重點的差別,導致了軟體開發技術和開發方法的演變和發展。