关注点分离 在計算機科學中關注點分離Separation of concernsSoC是將計算機程序分隔為不同部份的設計原則每一部份會有各自的關注焦點關注焦點是影響計算機程式程式碼的一組資訊關注焦點可以像是將程式碼優化過的硬件細節一般或者像實例化類別的名稱一樣具體展現關注點分離設計的程序被稱為模組化程序模組化程度也就是區分關注焦點通過將資訊封装在具有明確界面的程序代碼段落中封裝是一種資訊隱藏手段資訊系統中的分層設計是關注點分離的另一個實施例例如表示層業務邏輯層數據訪問層持久數據層 关注点分离是對只与特定概念目标關注點英语Concern computer science相关联的软件组成部分進行标识封装和操纵的能力即标识封装和操纵关注点的能力是处理复杂性的一个原则由于关注点混杂在一起会导致复杂性大大增加所以能够把不同的关注点分离开来分别处理就是处理复杂性的一个原则一种方法分离关注点使得解决特定领域问题的程式碼从业务逻辑中独立出来业务逻辑的程式碼中不再含有针对特定领域问题程式碼的调用將针对特定领域问题程式碼抽象化成較少的程式碼例如將程式碼封裝成function或是class業務邏輯同特定领域问题的关系通过侧面来封装维护这样原本分散在整个应用程序中的变动就可以很好的管理起来 關注點分離的價值在於簡化計算機程序的開發和維護當關注點分開時各部份可以重複使用以及獨立開發和更新具有特殊價值的是能夠稍後改進或修改一段代碼而無需知道其他部分的細節必須對這些部分進行相應的更改