真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

經(jīng)典設計模式總則-創(chuàng)新互聯(lián)

Design pattern

設計模式背景-概念、面向對象六大原則、設計模式分類、二十三中常用設計模式即創(chuàng)建型模式、結構型模式、行為型模式

我們擁有十多年網(wǎng)頁設計和網(wǎng)站建設經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設計師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)、手機網(wǎng)站開發(fā)、H5技術、等業(yè)務。無論您有什么樣的網(wǎng)站設計或者設計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設計服務并滿足您的需求。
1、設計模式的背景、概念及其必要性 1.1、設計模式的背景

設計模式最初并不是應用于軟件設計領域,而是被用于建筑領域的設計中。

1977 年,漂亮國加利福尼亞大學伯克利分校環(huán)境結構中心主任,在他的著作《建筑模式語言:城鎮(zhèn)、建筑、構造》中描述了一些常見的建筑設計問題,并提出了 253 中關于對城鎮(zhèn)、鄰里、住宅、花園和房間進行設計的基本模式。

1995 年,一個號稱 Gang of Four(四人幫)的組織,合作出版了《設計模式:可復用面向對象軟件的基礎》一書中收錄了 23 中設計模式。這是設計模式領域里程碑的事件,導致了軟件設計模式的突破。

1.2、設計模式的概念

設計模式(Design Pattern)即 軟件設計模式,是一套被反復使用、經(jīng)過分類編目、代碼設計經(jīng)驗的總結。它描述了在軟件設計過程中一些不斷 “重復” 出現(xiàn)的問題的解決方案。即它是解決一些高頻特定問題的一系列套路,它是前輩們的代碼設計經(jīng)驗的總結,具有一定普遍性和可復用性。

1.3、設計模式的必要性

設計模式的本質是對面向對象設計原則的實際應用,是對類的封裝性、繼承性和多態(tài)性以及類的關聯(lián)關系、組合關系的充分理解。

  • 使程序的設計更加標準化,代碼編制更加工程化,使軟件開發(fā)效率大大提高,從而縮短軟件開發(fā)周期。
  • 使設計的代碼可重用性高、可擴展性強、可維護性高、可讀性高。
  • 可以提高程序員的編程能力、設計能力和思維能力。
2、軟件設計七大原則

軟件設計原則,即面向對象七大原則。

  • 單一職責原則(SRP)

    單一職責原則,即盡可能讓一個類只負責一件事,當這個類需要負責多件事時,則可以考慮將其拆分成多個類,即低耦合、高內(nèi)聚。

  • 開放封閉原則(OCP)

    開放封閉原則,即對外擴展開放,對內(nèi)修改關閉。其核心思想是抽象編程,而不是具象編程。

  • 里氏替換原則(SLP)

    里氏替換原則,即任何基類出現(xiàn)的地方,子類一定可以出現(xiàn)。只有子類能夠替換父類時,才能夠使程序在運行期間識別子類,這是保證繼承服用的基礎。

  • 接口隔離原則(ISP)

    接口隔離原則,即使用多個功能單一的接口代替一個功能復雜的接口。實現(xiàn)的方式有兩種:

    • 使用委托分離:即使用一個第三方新類型來委托客戶端的請求,避免客戶端與接口的直接依賴,但是會增加系統(tǒng)開銷。
    • 使用多重繼承分離:即使用接口多重繼承來實現(xiàn)分離。
  • 依賴倒置原則(DIP)

    依賴倒置原則,即高層模塊不應該依賴于底層模塊,兩者都應依賴其抽象,抽象不依賴于具體,具體依賴于抽象,即面向抽象編程,而非面向具體吧編程。

  • 迪米特法則(LKP)

    迪米特法則,又稱最少知道原則,即一個類盡可能少的了解其它類。如果兩個類或對象之間無需直接通信,則可以使用第三方類或對象來作為中介進行通信,可降低對象之間的耦合度,提高模塊之間的相對對立性。

  • 合成復用原則(CRP)

    合成復用原則,即盡量優(yōu)先使用合成或聚合等關聯(lián)關系來實現(xiàn),其次才使用繼承等繼承關系來實現(xiàn)。即在類的復用過程中,優(yōu)先使用合成復用,其次使用繼承服用,從而降低對象間的耦合度。

3、設計模式的分類

設計模式可以按照模式的目的和作用兩種方式來分類。

3.1、根據(jù)模式的目的分類
  • 創(chuàng)建型模式

    用于描述 “怎樣創(chuàng)建對象”,它的主要作用是將對象的創(chuàng)建和使用分離。如:單例、原型、工廠方法、抽象工廠、建造者等 5 種設計模式。

  • 結構型模式

    用于描述 “如何將類或對象按照某種布局組成更大的結構”。如:代理、適配、橋接、裝飾、外觀、享元、組合等 7 種設計模式。

  • 行為型模式

    用于描述 “類或對象之間怎樣相互協(xié)作來共同完成單個對象無法單獨完成的任務”,以及怎樣分配職責。如:模板方法、策略、命令、職責鏈、狀態(tài)、觀察者、中介者、迭代器、訪問者、備忘錄、解釋器等 11 種設計模式。

software-design-pattern

3.2、根據(jù)模式的作用對象分類
  • 類模式

    用來處理父類與子類之間的關系,這些關系都是通過繼承建立的,是靜態(tài)的,在編譯時便確定下來的。如:工廠方法、適配器、模版方法、解釋器等 4 種設計模式。

  • 對象模式

    用來處理對象于對象之間的關系,這些關系都是通過組合和聚合建立的,在運行時刻可以改變,更具動態(tài)性。除上述四種類模式外,其余 19 種皆為對象模式。

作用對象 / 目的創(chuàng)建型模式結構型模式行為型模式
類模式工廠方法(類)適配器模板方法
解釋器
對象模式單例
原型
抽象工廠
建造者
代理
(對象)適配器
橋接
裝飾
外觀
享元
組合
策略
命令
職責鏈
狀態(tài)
觀察者
中介者
迭代器
訪問者
備忘錄

二十三種設計模式之間的關系:
23-design-pattern-relationship

4、二十三種設計模式簡介 4.1、創(chuàng)建型模式
  • 單例模式

    某個只能創(chuàng)建一個實例,且提供對外全局訪問點,構造方法私有。[深入了解單例模式](人世間子 (xgllhz.top))

  • 原型模式

    即將一個對象作為原型對象,通過對其克隆而復制出多個與原型對象類似的新實例。[深入了解原型模式](人世間子 (xgllhz.top))

  • 工廠方法模式

    即簡單工廠模式的升級版,其抽象了對象的創(chuàng)建,將對象的具體創(chuàng)建延遲到了其子類中。[深入了解工廠方法模式](人世間子 (xgllhz.top))

  • 抽象工廠模式

    即工廠方法模式的升級版,其可以生產(chǎn)一個產(chǎn)品族的產(chǎn)品。[深入了解抽象工廠模式](人世間子 (xgllhz.top))

  • 建造者模式

    將一個復雜對象的構建和表示分離,使得同樣的創(chuàng)建過程可以得到不同的表示。[深入了解建造者模式](人世間子 (xgllhz.top))

4.2、結構型模式

結構型設計模式描述如何將類或對象按照某種布局組成更大的結構。它分為類結構模式和對象結構型模式,前者采用集成來組合接口或類,后者采用組合或聚合來組合對象。由于組合或聚合關系比繼承關系耦合度低,滿足里氏替換原則,所以對象結構模型比類結構模型更具靈活性。

  • 代理模式

    即為某個對象提供一種代理以控制對對象的訪問。[深入了解代理模式](人世間子 (xgllhz.top))

  • 適配模式

    即將一個類的某個接口轉換成用戶希望的另一個接口,使得原本由于接口不兼容而不能在一起工作的類可以在一起工作。[深入了解適配模式](人世間子 (xgllhz.top))

  • 橋接模式

    即將抽象和實現(xiàn)分離,使他們可以獨立變化。[深入了解橋接模式](人世間子 (xgllhz.top))

  • 裝飾模式

    即在不改變現(xiàn)有對象結構的前提下,動態(tài)的給對象增加一些職責(即增加其額外功能)的模式。[深入了解裝飾模式](人世間子 (xgllhz.top))

  • 外觀模式

    即為多個復雜的子系統(tǒng)提供一個統(tǒng)一的接口,使得這些子系統(tǒng)更加容易被訪問。[深入了解外觀模式](人世間子 (xgllhz.top))

  • 享元模式

    即運用共享技術來有效的支持大量細粒度對象的復用。[深入了解享元模式](人世間子 (xgllhz.top))

  • 組合模式

    即部分整體模式,是用于把一組相似的對象當做一個單一個的對象。[深入了解組合模式](人世間子 (xgllhz.top))

4.3、行為型模式
  • 模版方法模式

    即定義一個算法骨架,而將一些步驟延遲到子類中實現(xiàn),使得子類可以在不改變算法骨架的情況下重新定義該算法的某些特定步驟。[深入了解模版方法模式](人世間子 (xgllhz.top))

  • 策略模式

    即定義一系列算法,并將每個算法封裝起來,使它們可以相互替換,且算法的變化不會影響使用算法的用戶。[深入了解策略模式](人世間子 (xgllhz.top))

  • 命令模式

    即將請求封裝成一個對象,使發(fā)出請求的責任和執(zhí)行請求的責任分離開。深入了解命令模式

  • 職責鏈模式

    即把請求從鏈中的一個對象傳到下一個對象,直到請求被響應為止,通過這種方式來解耦。[深入了解職責鏈模式](人世間子 (xgllhz.top))

  • 狀態(tài)模式

    即對有狀態(tài)的對象,把復雜的判斷邏輯提取到不同的狀態(tài)對象中,允許狀態(tài)對象在其內(nèi)部狀態(tài)發(fā)生改變時改變其行為。[深入了解狀態(tài)模式](人世間子 (xgllhz.top))

  • 觀察者模式

    又稱為發(fā)布-訂閱模式,即它定義了一種對象間一對多的依賴關系,讓多個觀察者對象同時監(jiān)聽某一個主題對象,這個主題對象在狀態(tài)發(fā)生變化時,會通知所有監(jiān)聽這個主題對象的觀察者對象,使它們能夠自動更新自己。[深入了解觀察者模式](人世間子 (xgllhz.top))

  • 中介者模式

    又稱調(diào)停模式,即定義一個中介者來封裝原有多個對象之間的依賴關系,且可以獨立改變它們之間的交互,以降低對象之間的耦合度。[深入了解中介者模式](人世間子 (xgllhz.top))

  • 迭代器模式

    即提供一種方法來順序訪問聚合對象內(nèi)的元素,而不暴露聚合對象的內(nèi)部數(shù)據(jù)結構。[深入了解迭代器模式](人世間子 (xgllhz.top))

  • 訪問者模式

    即在不改變聚合對象內(nèi)元素的前提下,為聚合對象內(nèi)每個元素提供多種訪問方式,即聚合對象內(nèi)的每個元素都有多個訪問者對象。[深入了解訪問者模式](人世間子 (xgllhz.top))

  • 備忘錄模式

    即在不破壞封裝的前提下,獲取并保存一個對象某一個時刻的內(nèi)部狀態(tài),以便以后恢復它。[深入了解備忘錄模式](人世間子 (xgllhz.top))

  • 解釋器模式

    即提供如何定義語言的文法,以及對語言句子的解釋方法。

差不多冬至 一早一晚還是沒雪

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


文章標題:經(jīng)典設計模式總則-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://weahome.cn/article/dpdssd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部