設計模式概述七大設計原則 - w3c學習教程
文章推薦指數: 80 %
設計模式概述七大設計原則,設計模式design pattern 是前輩們對開發經驗的總結,是解決特定問題的一系列套路。
它不是語法規定,而是一套用來提高可複用 ...
設計模式概述七大設計原則
2021-09-2808:34:32字數2663閱讀1643
設計模式(designpattern)是前輩們對**開發經驗的總結,是解決特定問題的一系列套路。
它不是語法規定,而是一套用來提高**可複用性、可維護性、可讀性、穩健性以及安全性的解決方案。
1995年,gof(gangoffour,四人組/四人幫)合作出版了《設計模式:可複用物件導向軟體的基礎》一書,共收錄了23種設計模式,從此樹立了軟體設計模式領域的里程碑,人稱「gof設計模式」。
物件導向設計原則概述
對於物件導向軟體系統的設計而言,在支援可維護性的同時,提高系統的可複用性是一個至關重要的問題,如何同時提高一個軟體系統的可維護性和可複用性是物件導向設計需要解決的核心問題之一。
在物件導向設計中,可維護性的複用是以設計原則為基礎的。
每一個原則都蘊含一些物件導向設計的思想,可以從不同的角度提升一個軟體結構的設計水平。
物件導向設計原則為支援可維護性複用而誕生,這些原則蘊含在很多設計模式中,它們是從許多設計方案中總結出的指導性原則。
物件導向設計原則也是我們用於評價一個設計模式的使用效果的重要指標之一,在設計模式的學習中,大家經常會看到諸如“***模式符合***原則”、“***模式違反了***原則”這樣的語句。
最常見的7種物件導向設計原則如下表所示:
表17種常用的物件導向設計原則
設計原則名稱
定義使用頻率
單一職責原則(single
responsibilityprinciple,srp)
一個類只負責一個功能領域中
的相應職責
★★★★☆
開閉原則(open-closed
principle,ocp)
軟體實體應對擴充套件開放,而對
修改關閉
★★★★★
里氏代換原則(liskov
substitutionprinciple,lsp)
所有引用基類物件的地方能夠
透明地使用其子類的物件
★★★★★
依賴倒轉原則(dependence
inversionprinciple,dip)
抽象不應該依賴於細節,細節
應該依賴於抽象
★★★★★
介面隔離原則(inte***ce
segregationprinciple,isp)
使用多個專門的介面,而不使
用單一的總介面
★★☆☆☆
合成複用原則(composite
reuseprinciple,crp)
儘量使用物件組合,而不是繼
承來達到複用的目的
★★★★☆
迪米特法則(lawofdemeter,
lod)
一個軟體實體應當儘可能少地
與其他實體發生相互作用
★★★☆☆
總結:這7種設計原則是軟體設計模式必須儘量遵循的原則,各種原則要求的側重點不同。
【開閉原則】是總綱,它告訴我們要【對擴充套件開放,對修改關閉】;
【里氏替換原則】告訴我們【不要破壞繼承體系】;
【依賴倒置原則】告訴我們要【面向介面程式設計】;
【單一職責原則】告訴我們實現【類】要【職責單一】;
【介面隔離原則】告訴我們在設計【介面】的時候要【精簡單一】;
【迪米特法則】告訴我們要【降低耦合度】;
【合成複用原則】告訴我們要【優先使用組合或者聚合關係複用,少用繼承關係複用】。
設計模式概述
設計模式(designpattern)代表了最佳的實踐,通常被有經驗的物件導向的軟體開發人員所採用。
設計模式是軟體開發人員在軟體開發過程中面臨的一般問題的解決方案。
這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。
設計模式是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。
使用設計模式是為了可重用**、讓**更容易被他人理解、保證**可靠性。
設計模式不是一種方法和技術,而是一種思想。
設計模式和具體的語言無關,學習設計模式就是要建立物件導向的思想,儘可能的面向介面程式設計,低耦合,高內聚,使設計的程式可複用。
學習設計模式能夠促進對物件導向思想的理解,反之亦然。
它們相輔相成。
設計模式的型別
總體來說,設計模式按照功能分為三類23種:
建立型(5種): 作用是將物件的建立和物件的使用分離。
newstudent(); student.study();包括:工廠模式、抽象工廠模式、單例模式、原型模式、構建者模式。
工廠模式:批量生產(屬性一致)
構建者模式:私人定製(屬性不一致)
單例模式:只會生產一個產品
原型模式:給我一個物件,我會產生一樣的物件
結構型(7種):介面卡模式、裝飾模式、**模式、外觀模式、橋接模式、組合模式、享元模式
行為型(11種):模板方法模式、策略模式、觀察者模式、中介者模式、狀態模式、責任鏈模式、命令模式、迭代器模式、訪問者模式、直譯器模式、備忘錄模式。
設計模式七大原則設計模式是構建框架的基礎,要想寫出優秀的,必須要有寫的大局觀意識。
七大設計原則1開閉原則用抽象構建架構,用實現擴充套件細節2...
設計模式(1)七大原則在實際開發中,講究的是一個平衡,我們要考慮人力時間成本質量截止時間擴充套件性。
在適當的場景追尋設計原則。
在某些設計原則中,並不是遵...
Java設計模式七大原則單一職責原則開閉原則里氏替換原則依賴倒置原則介面隔離原則迪米特法則組合聚合複用原則單一職責原則singlerespons...
相關推薦
設計模式遵循的七大原則
設計模式七大原則(12)
Python七大原則,24種設計模式
設計模式七大設計指導原則
Unity話大設計模式之物件導向七大原則
相關推薦
細數美國移動醫療的七大商業模式
設計模式的七大原則里氏替換原則
設計模式的七大原則迪米特法則上
設計模式的七大原則迪米特法則下
3分鐘掌握23個設計模式和七大原則
相關閱讀
web標準複習7橫向導航選單
c語音讀取文字
課時6Go常用命令介紹
設計模式概述七大設計原則
Python執行緒多執行緒
python3互動redis
topic
科技
教育
python
linux
社會
數碼
java
c++
遊戲
演算法
資料庫
健康
文化
mysql
汽車
娛樂
科學
財經
資料結構
C語言
職場
php
C
oracle
c#
作業系統
工作
體育
sql
網路
延伸文章資訊
- 1SOLID 設計原則. 當工程師大概半年左右的時間 - Medium
設計模式:SOLID Principles 物件導向原則. 當工程師大概半年左右的時間,在工作的過程中慢慢理解到設計模式的重要性,過去總是以能快速實作功能為第 ...
- 2设计模式原则· GitBook
设计模式原则 · 写在前面 · 设计的六大原则 · 依赖倒置原则(Dependence Inversion Principle) · 接口隔离原则(Interface Segregation P...
- 3物件導向程式設計基本原則- SOLID
不論是上面那些出自於「Agile Software Development」這本書的五項原則或是本書的主題「設計模式」,都是前人在軟體開發過程中所累積的經驗心得,可以說是學習寫程式的內功 ...
- 4設計模式概述七大設計原則 - w3c學習教程
設計模式概述七大設計原則,設計模式design pattern 是前輩們對開發經驗的總結,是解決特定問題的一系列套路。它不是語法規定,而是一套用來提高可複用 ...
- 5一起幫忙解決難題,拯救IT 人的一天
其中,有五個原則這兩本書中不斷被提及,搭配Google 後才了解到,SOLID,就是這五個原則取第一個字母組合而成,實際閱讀、理解後,覺得這些原則可說是設計模式之所以 ...