在計算機編程和設計中,單一責任原則是一個概念,它支持這樣一種觀點:程序中的任何類在更大的應用程序中只應執行一個功能。這一思想部分地促進了面向對象編程的一些理念,如封裝,因為一個完整的類將專注于執行一個單一的職責...
在計算機編程和設計中,單一責任原則是一個概念,它支持這樣一種觀點:程序中的任何類在更大的應用程序中只應執行一個功能。這一思想部分地促進了面向對象編程的一些理念,如封裝,因為一個完整的類將專注于執行一個單一的職責,并且幾乎不依賴于外部的類。同時,它與早期面向對象編程的一些概念有些背道而馳,因為單個對象的功能與該對象正在處理的數據是解耦的,這意味著可能需要構建許多組合對象來維護一些中心數據。單一責任原則是一種被稱為責任驅動設計的設計模型的基礎。女性與計算機進行倒立時,單一責任原則的示例可以采用傳統的形式電話聽筒。一些設計原則將聽筒視為一個單獨的對象,它處理來自電話線的輸入和揚聲器輸出的傳輸。在單一責任模型下,單個對象只應具有單一責任,然后,手機將由幾個單獨的對象組成,每個對象執行一個功能,例如只接收來自電話線的輸入,或者只通過聽筒輸出數據。使用單一責任原則的優勢之一是高度抽象和模塊化,無論是從電話線輸入還是信號輸出到用戶的方式都可以改變,而不影響相鄰的類,只要它們遵守相同的接口契約此外,某些組件的可重用性非常高,因為每個類都是完全封裝的,并且幾乎不依賴于周圍的對象(如果有的話),而只關注其一個職責。單一責任原則可能會造成大量的類和對象都在運行在相同的數據上。這可能意味著大量的開銷和復雜的設計過程,也可能使調試一個大型程序變得困難,因為程序的單個部分可能包含數千個小類文件。當通過責任驅動設計應用單一責任原則時,為了設計的目的,將數據和用于操作數據的方法分離開來,這在設計上確實帶來了一定的自由度、封裝性和模塊化,它還可以生成許多中間模式和設計,這些模式和設計必須用于幫助許多類同時嘗試與數據交互。另一方面,如果一個對象的數據和用于操作它的方法都綁定在一個單一的多職責對象中,則代碼可能會變得更難隨著系統的擴展、變化或變得更復雜而進行修改
-
發表于 2020-08-07 15:25
- 閱讀 ( 557 )
- 分類:電腦網絡