關注點分離

在計算機科學中 ， 關注點分離 （ Separation of concerns ， SoC ） ， 是將計算機程序分隔爲不同部份的設計原則 。 每一部份會有各自的關注焦點 。 關注焦點是影響計算機程式程式碼的一組資訊 。 關注焦點可以像是將程式碼優化過的硬件細節一般 ， 或者像實例化類別的名稱一樣具體 。 展現關注點分離設計的程序被稱爲模組化程序 。 模組化程度 ， 也就是區分關注焦點 ， 通過將資訊封裝在具有明確界面的程序代碼段落中 。 封裝是一種資訊隱藏手段 。 資訊系統中的分層設計是關注點分離的另一個實施例 （ 例如 ， 表示層 ， 業務邏輯層 ， 數據訪問層 ， 持久數據層 ） 。 關注點分離 ， 是對只與 「 特定概念 、 目標 」  相關聯的軟件組成部分進行 「 標識 、 封裝和操縱 」 的能力 ， 即標識 、 封裝和操縱關注點的能力 。 是處理複雜性的一個原則 。 由於關注點混雜在一起會導致複雜性大大增加 ， 所以能夠把不同的關注點分離開來 ， 分別處理就是處理複雜性的一個原則 ， 一種方法 。 分離關注點使得解決特定領域問題的程式碼從業務邏輯中獨立出來 ， 業務邏輯的程式碼中不再含有針對特定領域問題程式碼的調用 （ 將針對特定領域問題程式碼抽象化成較少的程式碼 ， 例如將程式碼封裝成function或是class ） ， 業務邏輯同特定領域問題的關係通過側面來封裝 、 維護 ， 這樣原本分散在整個應用程序中的變動就可以很好的管理起來 。 關注點分離的價值在於簡化計算機程序的開發和維護 。 當關注點分開時 ， 各部份可以重複使用 ， 以及獨立開發和更新 。 具有特殊價值的是能夠稍後改進或修改一段代碼 ， 而無需知道其他部分的細節必須對這些部分進行相應的更改 。