單一職責原則:乙個類,最好只做一件事,只有乙個引起它的變化。單一職責原則可以看做是低耦合、高內聚在物件導向原則上的引申,將職責定義為引起變化的原因,以提高內聚性來減少引起變化的原因。職責過多,可能引起它變化的原因就越多,這將導致職責依賴,相互之間就產生影響,從而大大損傷其內聚性和耦合度,通常意義下的單一職責,就是指只有一種單一功能,不要為類實現過多的功能點,以保證實體只有乙個引起它變化的原因。
開放封閉原則:它是物件導向所有原則的核心,軟體設計說到底的目標就是封裝變化,降低耦合,而開放封閉原則就是這一目標的最直接體現。其核心思想:軟體實體應該是可擴充套件的,而不可修改的,也就是,對擴充套件開放,對修改封閉的。
依賴倒置原則:依賴於抽象,具體而言就是高層模組不依賴與底層模組,而這都同依賴於抽象;抽象不依賴於具體,具體依賴於抽象。依賴一定會存在於類與類、模組與模組之間,當兩個模組之間存在緊密的耦合關係時,最好的方法就是分離介面和實現:在依賴之間定義乙個抽象的介面使得高層模組呼叫介面,而底層模組實現介面的定義,以此來有效控制耦合u干係,達到依賴於抽象的設計目標。
介面隔離原則:使用多個小的專門的介面,而不要使用乙個大的總介面。體現在:介面應該是內聚的,應該避免「胖」介面。乙個類對另外乙個類的依賴應該建立在最小的介面上,不要強迫依賴不用的方法,這是一種介面汙染。介面有效地將細節和抽象隔離,體現了對抽象程式設計的一切好處,介面隔離強調介面的單一性。分離的手段主要有一下兩種:1、委託分離,通過增加乙個新的型別來委託客戶的請求,隔離客戶和介面的直接依賴,但是會增加系統的開銷。2、多重繼承分離,通過介面多繼承來實現客戶的需求,這種方式是較好的。
liskov替換原則:子類必須能夠替換其基類,這一思想體現為對繼承機制的約束規範,只有子類能夠替換基類時,才能保證系統在執行期內識別子類。
物件導向的五大設計原則
一 開 閉原則 ocp 含義 乙個軟體實體應當對擴充套件開放,對修改關閉。二 單一職責原則 srp 含義 就是對乙個類而言,應該僅有乙個引起變化的原因。所以在構造物件時,應該將物件的不同職責分離至多個類中,從而確保引起該類的變化的原因只有乙個,使用這個原則可以提高內聚,降低耦合度。三 黎克特制替換原...
物件導向設計的五大原則
筆試題 物件導向設計的五大原則?你的設計違背了哪一條,結合開發經驗。去凱蘭高面試時,讓做的筆試捲裡的一道題,當時覺得完全沒聽過,現在記錄一下,保不准什麼時候又被問到。在物件導向設計中,如何通過很小的設計改變就可以應對設計需求的變化,這是令設計者極為關注的問題。為此不少oo先驅提出了很多有關物件導向的...
物件導向設計的五大原則
solid五原則 單一職責原則 乙個類應該有且只有乙個去改變它的理由,這意味著乙個類應該只有一項工作。開放封閉原則 物件或實體應該對擴充套件開放,對修改封閉。黎克特制替換原則 每乙個子類或派生類應該可以替換它們基類或父類,即對父類的呼叫同樣適用於子類。介面隔離原則 不應強迫客戶端實現乙個它用不上的介...