單一職責原則(srp:single responsibility principle)
優點:
建議:介面一定要做到單一職責,類的設計盡量做到只有乙個原因引起變化。
定義:所有引用基類的地方必須能透明地使用其子類物件。
四層含義:
建議:
類中呼叫其他類時,務必使用父類或介面;否則說明違背了此原則。
若子類不能完整地實現父類的方法,則建議斷開父子繼承關係,採用依賴、聚集、組合等關係替代繼承。
三層含義:
簡而言之:面向介面程式設計
抽象是對實現的約束,對依賴者而言,也是一種契約,目的是保證所有細節不脫離契約的範疇。
依賴的三種寫法:
建構函式傳遞依賴物件(建構函式注入)
setter方法傳遞依賴物件(setter依賴注入)
介面宣告依賴物件(介面注入)
建議:
關於【倒置】:
「正置」:面向實現程式設計,開車依賴車,使用電腦依賴電腦。
根據系統設計的需要產生了抽象間的依賴,替代了人們傳統思維中事務間的依賴,「倒置」就是從這裡產生的。
定義:客戶端不應該依賴它不需要的介面。乙個類對另乙個類的依賴應該建立在最小的介面上。(介面盡量細化,同時介面中的方法盡量少。)
四層含義:
定義:乙個物件應該對其他物件有最少的了解。
四層含義:
核心:
類間解耦,弱耦合。但過度使用會產生大量中轉或跳轉類,需反覆權衡找到平衡點,跳轉次數盡量控制在兩次以內。
定義:軟體中的物件(類,模組,函式等等)應該對於擴充套件是開放的,但是對於修改是封閉的。
優點:
如何使用
抽象約束:不允許出現抽象類中不存在的public方法;引數型別、引用物件盡量使用抽象類,而不是實現類;抽象層盡量保持穩定。
元資料控制模組行為:從檔案或資料庫中獲取元資料
制定專案章程
封裝變化:將相同的變化封裝到乙個抽象類中;將不同的變化封裝到不同的抽象類中。
srp:單一職責原則
ocp:開閉原則
lsp:黎克特制替換原則
lod:迪公尺特法則
isp:介面隔離原則
dip:依賴倒置原則
將六大原則首字母鏈結,就是solid(穩定的),建立穩定、靈活、健壯的設計,開閉原則是其他5大原則的精神領袖。
開閉原則是乙個終極目標,任何人都無法百分百做到,我們只是盡量去朝這個目標去做,實際工作時也要結合具體情況。
設計模式 6大設計原則
目錄 1 單一職責原則 2 黎克特制替換原則 3 依賴倒轉原則 4 介面隔離原則 5 迪公尺特法則 6 開閉原則 7 合成 聚合復用原則 single responsibility principle 應該有且僅有乙個原因引起類的變更。乙個介面包含了兩個或多個職責,而且這兩個或多個職責的變化不相互影...
設計模式 6大設計原則
前往目錄 擴充套件時不改變原有 乙個抽象類被多個子類繼承並實現抽象方法,呼叫者取得抽象類物件並呼叫方法,main中對呼叫者傳入不同子物件來實現切換 拓展時加子類即可 能使用父類的地方一定能使用子類,正方形不是長方形。假設長方形設定寬比高小時自增,正方形繼承長方形方法後會死迴圈,因此根據此原則不能使用...
6大設計原則 23種設計模式
乙個類只負責一項職責,應該僅有乙個引起它變化的原因。優點 子類可以擴充套件父類的功能,但不能改變父類原有的功能。即任何基類可以出現的地方,子類一定可以出現,並且當用子類替換了基類後程式不受影響。含義 要求對抽象進行程式設計,不要對實現進行程式設計。實際程式設計中需要做到 建立單一介面,不要建立龐大臃...