日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

架构师进阶之独孤九剑:设计模式详解

發(fā)布時間:2024/7/5 asp.net 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 架构师进阶之独孤九剑:设计模式详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


我們繼續(xù)架構(gòu)師進階之獨孤九劍進階,目前我們?nèi)匀辉诘谝浑A段:程序設(shè)計和開發(fā)環(huán)節(jié)

設(shè)計模式不僅僅只是一種規(guī)范,更多的是一種設(shè)計思路和經(jīng)驗總結(jié),目的只有一個:提高你高質(zhì)量編碼的能力。以下主要分為三個環(huán)節(jié):為什么要用設(shè)計模式、設(shè)計模式的分類,以及最后推薦大家三本設(shè)計模式相關(guān)的書籍,希望對你有所幫助。

為什么要使用設(shè)計模式

1、設(shè)計模式是前人根據(jù)經(jīng)驗總結(jié)出來的,使用設(shè)計模式,就相當(dāng)于是站在了前人的肩膀上。

2、設(shè)計模式使程序易讀。熟悉設(shè)計模式的人應(yīng)該能夠很容易讀懂運用設(shè)計模式編寫的程序。

3、設(shè)計模式能使編寫的程序具有良好的可擴展性,滿足系統(tǒng)設(shè)計的開閉原則。比如策略模式,就是將不同的算法封裝在子類中,在需要添加新的算法時,只需添加新的子類,實現(xiàn)規(guī)定的接口,即可在不改變現(xiàn)有系統(tǒng)源碼的情況下加入新的系統(tǒng)行為。

4、設(shè)計模式能降低系統(tǒng)中類與類之間的耦合度。比如工廠模式,使依賴類只需知道被依賴類所實現(xiàn)的接口或繼承的抽象類,使依賴類與被依賴類之間的耦合度降低。

5、設(shè)計模式能提高代碼的重用度。比如適配器模式,就能將系統(tǒng)中已經(jīng)存在的符合新需求的功能代碼兼容新的需求提出的接口 。

6、設(shè)計模式能為常見的一些問題提供現(xiàn)成的解決方案。

7、設(shè)計模式增加了重用代碼的方式。比如裝飾器模式,在不使用繼承的前提下重用系統(tǒng)中已存在的代碼。

設(shè)計模式分類和作用

1.總體來說設(shè)計模式分為三大類:



2.創(chuàng)建型模式的作用:

創(chuàng)建型模式,顧名思義就是創(chuàng)建對象的模式,對對象實例化過程進行了抽象。它們幫助一個系統(tǒng)獨立于如何創(chuàng)建、組合和表示它的那些對象。


3.創(chuàng)建型模式,共五種:

  • 工廠方法模式

  • 抽象工廠模式

  • 單例模式

  • 建造者模式

  • 原型模式

1)工廠方法模式:定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類,也就是將創(chuàng)建工作推遲到子類來完成。

2)抽象工廠模式:提供一個創(chuàng)建一系列相關(guān)或者相互依賴對象的接口,而無需指定它們(指的是這些相關(guān)或者相互依賴的對象)的具體的類。

3)生成器模式:將一個復(fù)雜對象的構(gòu)建和它的表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建出不同的表示。

4)原型模式:用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。

5)單例模式:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。換句話來說就是,單例模式通過將單例類的構(gòu)造器訪問修飾符設(shè)置為private,禁止客戶直接通過new的方式來實例化單例類;與此同時,單例類提供一個靜態(tài)訪問點來獲取到通過內(nèi)部創(chuàng)建出的唯一單例類對象。


4.一般創(chuàng)建型設(shè)計模式面試必問:

建議以下四類都熟練掌握

  • 工廠方法模式

  • 抽象工廠模式

  • 單例模式

  • 建造者模式


5.結(jié)構(gòu)型模式,共七種:

  • 適配器模式

  • 裝飾器模式

  • 代理模式

  • 外觀模式

  • 橋接模式

  • 組合模式

  • 享元模式


6.結(jié)構(gòu)型模式的作用:

結(jié)構(gòu)型模式主要用于描述如何組合類和對象以獲得更大的結(jié)構(gòu)。其中,結(jié)構(gòu)型類模式采用繼承機制來組合接口和實現(xiàn),而結(jié)構(gòu)型對象模式則采用組合/聚合方式來組合對象以實現(xiàn)新功能,因為它可以在運行時刻改變對象組合關(guān)系,所以對象組合方式具有更大的靈活性,這種機制是無法通過靜態(tài)類組合來實現(xiàn)的。


7.結(jié)構(gòu)型模式簡介:


1.適配器模式:將一個類的接口轉(zhuǎn)換成客戶希望的另外一種接口,這樣就能實現(xiàn)已有接口的復(fù)用。適配器主要有類適配器和對象適配器兩種實現(xiàn)方式,通常情況下,推薦優(yōu)先使用對象適配器方式。

2.橋接模式:將抽象部分與實現(xiàn)部分分離,使它們都可以獨立地變化。它主要用于應(yīng)對多維度變化點問題,通過對象組合的方式,可以極大地減少子類的數(shù)目,同時還能讓不同維度獨立擴展變化。

3.組合模式:將對象組合成樹形結(jié)構(gòu)以表示“整合-部分”的層次結(jié)構(gòu),從而使得用戶對單個對象和組合對象的使用具有一致性,也就是客戶端能夠透明地?zé)o區(qū)別地操作兩者。

4.裝飾模式:動態(tài)地給一個對象添加一些額外的職責(zé),就增加功能來說,裝飾模式相比生成子類更為靈活。

5.外觀模式:為子系統(tǒng)中的一組接口提供一個一致的接口,外觀模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。這樣原來需要客戶直接與復(fù)雜的子系統(tǒng)打交道、交互,現(xiàn)在這一過程將完全將交由外觀對象來完成,極大地方便了客戶端的調(diào)用。

6.享元模式:運用共享技術(shù)有效地支持大量細粒度的對象。享元模式關(guān)鍵是將對象的內(nèi)部狀態(tài)和外部狀態(tài)分離,盡可能地對“穩(wěn)定”的內(nèi)部狀態(tài)進行共享,而將會隨運用場景而改變的狀態(tài)通過外部狀態(tài)傳入。

7.代理模式:為其他對象提供一種代理以控制對這個對象的訪問。主要是在客戶端和目標(biāo)對象間增加一層間接層,通過這個間接層來完成對目標(biāo)對象的種種控制操作,所以也就形成了不同功能類型的代理呢,比如遠程代理、保護代理和虛代理等等。


8.行為型模式,共十一種:

  • 策略模式

  • 模板方法模式

  • 觀察者模式

  • 迭代子模式

  • 責(zé)任鏈模式

  • 命令模式

  • 備忘錄模式

  • 狀態(tài)模式

  • 訪問者模式

  • 中介者模式

  • 解釋器模式


9.行為模式的作用:

行為型模式設(shè)計到算法和對象間的職責(zé)分配,不僅描述對象或類的模式,還描述它們之間的通信方式,刻劃了運行時難以跟蹤的復(fù)雜的控制流,它們將你的注意力從控制流轉(zhuǎn)移到對象間的關(guān)系上來。

設(shè)計模式書籍推薦

1.第一本:Head First設(shè)計模適合式

適合:設(shè)計模式入門


2.第二本:設(shè)計模式

適合:有一定的設(shè)計模式基礎(chǔ)之后再看


3.第三本:敏捷軟件開發(fā)

適合:對設(shè)計模式以及敏捷的了解,名字叫敏捷軟件開發(fā),實則主要講解了大量設(shè)計模式。


推薦以上的三本設(shè)計模式相關(guān)的書籍,順序可以從上往下看,出入門到深入,也許效果會更好。


總結(jié)

以上是生活随笔為你收集整理的架构师进阶之独孤九剑:设计模式详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。