-
單一功能原則
鎖定
- 中文名
- 單一功能原則
- 性 質
- 計算機編程原理
- 領 域
- 計算機
目錄
- 1 簡介
- 2 關注點分離
- 3 內聚性跳到導航跳到搜索
單一功能原則簡介
在面向對象編程領域中,單一功能原則(Single responsibility principle)規定每個類都應該有一個單一的功能,並且該功能應該由這個類完全封裝起來。所有它的(這個類的)服務都應該嚴密的和該功能平行(功能平行,意味着沒有依賴)。
這個術語由羅伯特·C·馬丁(Robert Cecil Martin)在他的《敏捷軟件開發,原則,模式和實踐》一書中的一篇名為〈面向對象設計原則〉的文章中給出。馬丁表述該原則是基於的《結構化分析和系統規格》一書中的內聚原則(Cohesion)上。
馬丁把功能(職責)定義為:“改變的原因”,並且總結出一個類或者模塊應該有且只有一個改變的原因。一個具體的例子就是,想象有一個用於編輯和打印報表的模塊。這樣的一個模塊存在兩個改變的原因。第一,報表的內容可以改變(編輯)。第二,報表的格式可以改變(打印)。這兩方面會的改變因為完全不同的起因而發生:一個是本質的修改,一個是表面的修改。單一功能原則認為這兩方面的問題事實上是兩個分離的功能,因此他們應該分離在不同的類或者模塊裏。把有不同的改變原因的事物耦合在一起的設計是糟糕的。
保持一個類專注於單一功能點上的一個重要的原因是,它會使得類更加的健壯。繼續上面的例子,如果有一個對於報表編輯流程的修改,那麼將存在極大的危險性,因為假設這兩個功能存在於同一個類中,修改報表的編輯流程會導致公共狀態或者依賴關係的改變,打印功能的代碼會因此不工作。
[1]
單一功能原則關注點分離
關注點分離(Separation of concerns,SOC)是對只與“特定概念、目標”(關注點)相關聯的軟件組成部分進行“標識、封裝和操縱”的能力,即標識、封裝和操縱關注點的能力。是處理複雜性的一個原則。由於關注點混雜在一起會導致複雜性大大增加,所以能夠把不同的關注點分離開來,分別處理就是處理複雜性的一個原則,一種方法。
關注點分離在計算機科學中,是將計算機程序分隔為不同部分的設計原則,是面向對象的程序設計的核心概念。每一部分會有各自的關注焦點。關注焦點是影響計算機程式代碼的一組資訊。關注焦點可以像是將代碼優化過的硬件細節一般,或者像實例化類別的名稱一樣具體。展現關注點分離設計的程序被稱為模組化程序。模組化程度,也就是區分關注焦點,通過將資訊封裝在具有明確界面的程序代碼段落中。封裝是一種資訊隱藏手段。資訊系統中的分層設計是關注點分離的另一個實施例(例如,表示層,業務邏輯層,數據訪問層,維持齊一層)。分離關注點使得解決特定領域問題的代碼從業務邏輯中獨立出來,業務邏輯的代碼中不再含有針對特定領域問題代碼的調用(將針對特定領域問題代碼抽象化成較少的程式碼,例如將代碼封裝成function或是class),業務邏輯同特定領域問題的關係通過側面來封裝、維護,這樣原本分散在整個應用程序中的變動就可以很好的管理起來。
關注點分離的價值在於簡化計算機程序的開發和維護。當關注點分開時,各部分可以重複使用,以及獨立開發和更新。具有特殊價值的是能夠稍後改進或修改一段代碼,而無需知道其他部分的細節必須對這些部分進行相應的更改。
[2]
單一功能原則內聚性跳到導航跳到搜索
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:2次歷史版本
- 最近更新: 畅想千年