七個設計原則

2021-10-12 17:48:01 字數 2508 閱讀 2999

物件導向程式設計有七大原則,即經常提到的design pattern,提倡它的根本原因是為了**復用,增加可維護性。

設計模式就是實現了這些原則,從而達到了**復用、增加可維護性的目的。因為設計模式就是基於這些原則的實現,所以很有必要了解這些原則,下面主要對物件導向程式設計的幾個原則進行簡單介紹。

本質:方法的封裝

特性:乙個功能、乙個作用,乙個方法。隱藏複雜,暴露簡單。降低耦合性。

本質: 新舊功能分開。原有方法是關閉的,新增的功能是開放的。

理解:在原先**不變的基礎上進行修改。如果乙個類(方法/功能),從頭到尾都是你自己編寫的,是可以從頭到尾進行任意調整。如果存在其它人寫的。絕對不允許改,否則整體功能架構會被破壞。絕對不允許~~你擔不起責任。(想改就要負責任)

本質:繼承

原則:任何使用到父類的物件,都可以用子類物件代替。

也就是說,子類物件可以隨時隨地替換父類,且替換完以後,語法不會報錯,業務邏輯不會報錯,否則不滿足。

業內存在 " 正方形不是長方形,鴕鳥不是鳥" 的問題,主要是應為 業務邏輯上可能存在衝突的問題,導致子類與父類之間違反了裡式替換原則

public

class

a{}public

class

bextends

a{}public

static

void

main

(string arge)

總結:(摘抄)

所謂物件是一組狀態和一系列行為的組合。狀態是物件的內在特性,行為是物件的外在特性。lsp所表述的就是在同乙個繼承體系中的物件應該有共同的行為特徵。我們在設計物件時是按照行為進行分類的,只有行為一致的物件才能抽象出乙個類來。設定長方形的長度的時候,它的寬度保持不變,設定寬度的時候,長度保持不變。正方形的行為:設定正方形的長度的時候,寬度隨之改變;設定寬度的時候,長度隨之改變。所以,如果我們把這種行為加到基類長方形的時候,就導致了正方形無法繼承這種行為。我們「強行」把正方形從長方形繼承過來,就造成無法達到預期的結果。鴕鳥非鳥,能飛是鳥的特性,但鴕鳥是不能飛的,我們強行將其歸為鳥類,最終導致**出錯。

所有子類的行為功能必須和其父類持一致,如果子類達不到這一點,那麼必然違反黎克特制替換原則。在實際的開發過程中,不正確的派生關係是非常有害的。伴隨著軟體開發規模的擴大,參與的開發人員也越來越多,每個人都在使用別人提供的元件,也會為別人提供元件。最終,所有人的開發的元件經過層層包裝和不斷組合,被集成為乙個完整的系統。每個開發人員在使用別人的元件時,只需知道元件的對外裸露的介面,那就是它全部行為的集合,至於內部到底是怎麼實現的,無法知道,也無須知道。所以,對於使用者而言,它只能通過介面實現自己的預期,如果元件介面提供的行為與使用者的預期不符,錯誤便產生了。黎克特制替換原則就是在設計時避免出現派生類與基類不一致的行為。

原則:上層不能依賴於下層,(上層、下層)都應該依賴於抽象(介面類/抽象類)

uml中存在依賴的關係,依賴倒置更容易通過uml圖,加強理解。

錯誤:每當下層進行變動時,上層也要變

正確:當下層新增乙個物件時,上層物件不進行調整。

本質:不要建立乙個 「功能很全」的介面

理解:在做介面設計時,不允許將不同型別的方法放在一起。要保證相同型別的方法,放在相同的介面中,形成專門的介面。

本質:封裝

理解:在職能中,對於「朋友」以外的物件知道(使用)的越少越好,意思就是將 非朋友的內容封裝起來,作為另乙個方法中的朋友進行處理。

「朋友」的定義:

1)當前物件本身(this)

2)引數(以參量形式傳入到當前物件方法中的物件)

3)當前物件本身的成員變數(當前物件的例項變數直接引用的物件)

4)當前物件本身的集合成員變數(當前物件的例項變數如果是乙個聚集,那麼聚集中的元素也都是朋友)

5)new 出來的物件(當前物件所建立的物件)

如果父類不是自己寫的,謹慎繼承,如果是自己寫的可以不用考慮。

對於其他人寫的「父類」,可以通過組合/聚合 的方式引進來。

七個設計原理

七個設計原理是我們在設計 結構時應考慮的核心觀點,目的是避免 中存在故障隱患。這些設計原理源於對實際軟體開發現場的分析,是提高 質量的經驗結晶。人們從 怎樣做才能在開發時避免 中存在的故障隱患 的角度出發,分析乙個個故障案例的根本原因,從而總結出了這些原理。七個設計原理是 審查的標準判斷。這七個設計...

物件導向的七個原則

一,單一職責原則 類 它的定義是 乙個方法只做一件事,保證粒度 二,開閉原則 類 模組 函式等 對擴充套件開發,對修改封閉 三,黎克特制替換原則 引數 確保超類所具有的性質在子類中仍然能夠成立 四,依賴倒置原則 介面 面向介面程式設計,不是面向實現 五,介面隔離原則 介面 介面隔離原則英文全稱是in...

七個設計原理 同構原理

同構原理就是力求規範。同等對待相同的東西,堅持不搞特殊。同等對待,舉例來說就是同乙個模組管理的數值全部採用同一單位 公有函式的引數個數統一等。相同的東西用相同的形式表現能夠使不同的東西更加突出。不同的東西往往容易產生bug。遵循同構原理能讓我們更容易嗅出 的異樣,從而找出問題所在。圖表和工業製品在設...