国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

重溫設(shè)計(jì)模式系列 --- 完整精華篇

這篇具有很好參考價(jià)值的文章主要介紹了重溫設(shè)計(jì)模式系列 --- 完整精華篇。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

引言

軟件開(kāi)發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到各種設(shè)計(jì)問(wèn)題,例如如何管理對(duì)象之間的關(guān)系、如何優(yōu)化代碼的可復(fù)用性和可維護(hù)性等等。為了解決這些問(wèn)題,我們可以使用設(shè)計(jì)模式。

設(shè)計(jì)模式是一種被廣泛接受的軟件設(shè)計(jì)思想,它提供了一套通用的解決方案,可以幫助我們更好地解決常見(jiàn)的軟件設(shè)計(jì)問(wèn)題。設(shè)計(jì)模式是從實(shí)踐中總結(jié)出來(lái)的,它不僅可以提高代碼的可讀性和可維護(hù)性,還可以提高開(kāi)發(fā)效率和代碼的可復(fù)用性。

常見(jiàn)設(shè)計(jì)模式原則

設(shè)計(jì)模式有常見(jiàn)的五大原則 - SOLID

  • 單一職責(zé)原則(SRP)
  • 開(kāi)放封閉原則(OCP)
  • 里氏替換原則(LSP)
  • 接口隔離原則(DIP)
  • 依賴倒置原則(ISP)

補(bǔ)充第六原則,迪米特法則(Law of Demeter,LoD)也稱為最少知識(shí)原則(Least Knowledge Principle,LKP)

常見(jiàn)設(shè)計(jì)模式類型

  • 創(chuàng)建型模式:負(fù)責(zé)對(duì)象的創(chuàng)建和初始化,共有5種:工廠方法模式、抽象工廠模式、單例模式建造者模式、原型模式
  • 結(jié)構(gòu)型模式:負(fù)責(zé)對(duì)象的組合,共有7種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式
  • 行為型模式:負(fù)責(zé)對(duì)象之間的通信,共有11種:觀察者模式、策略模式、迭代器模式、命令模式、責(zé)任鏈模式、模板方法模式、訪問(wèn)者模式、中介者模式解釋器模式、過(guò)濾器模式、備忘錄模式

目錄

創(chuàng)建型模式

  1. 抽象工廠模式(Abstract Factory Pattern)

抽象工廠模式是一種創(chuàng)建型設(shè)計(jì)模式,它提供了一種封裝一組相關(guān)或相互依賴對(duì)象創(chuàng)建過(guò)程的方法,使得我們可以在不知道具體實(shí)現(xiàn)細(xì)節(jié)的情況下,創(chuàng)建一系列相互協(xié)作的對(duì)象。

  1. 工廠方法模式(Factory Method Pattern)

工廠方法模式是一種創(chuàng)建型設(shè)計(jì)模式,它提供了一種將對(duì)象的創(chuàng)建過(guò)程封裝起來(lái)的方法,使得我們可以在不知道具體實(shí)現(xiàn)細(xì)節(jié)的情況下,創(chuàng)建各種不同類型的對(duì)象。

  1. 單例模式(Singleton Pattern)

單例模式是一種保證一個(gè)類只有一個(gè)實(shí)例的模式,它可以避免多個(gè)實(shí)例造成的資源浪費(fèi)和對(duì)象的不一致性。單例模式通常使用一個(gè)私有的構(gòu)造函數(shù)和一個(gè)靜態(tài)的實(shí)例變量來(lái)實(shí)現(xiàn)。

  1. 建造者模式(Builder Pattern)

將一個(gè)復(fù)雜對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。建造者模式可以將復(fù)雜對(duì)象的構(gòu)建過(guò)程抽象出來(lái),從而使得系統(tǒng)更加靈活。

  1. 原型模式(Prototype Pattern)

用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并通過(guò)復(fù)制這些原型創(chuàng)建新的對(duì)象。原型模式可以在運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建對(duì)象,從而避免了靜態(tài)工廠方法所帶來(lái)的編譯時(shí)耦合。

結(jié)構(gòu)型模式

  1. 適配器模式(Adapter Pattern)

適配器模式是一種將一個(gè)類的接口轉(zhuǎn)換成客戶端所期望的另一種接口的模式,它可以讓原本不兼容的類能夠協(xié)同工作。這種模式可以避免因接口不匹配而導(dǎo)致的代碼重構(gòu)和重復(fù)開(kāi)發(fā)。

  1. 裝飾器模式(Decorator Pattern)

裝飾器模式是一種在運(yùn)行時(shí)動(dòng)態(tài)地給對(duì)象添加新的功能的模式,它通過(guò)將對(duì)象包裝在一個(gè)裝飾器中來(lái)實(shí)現(xiàn)。這種模式可以避免使用繼承帶來(lái)的復(fù)雜性和靜態(tài)特性,提高代碼的靈活性和可擴(kuò)展性。

  1. 代理模式(Proxy Pattern)

代理模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,它允許我們創(chuàng)建一個(gè)代理對(duì)象來(lái)控制對(duì)另一個(gè)對(duì)象的訪問(wèn)。代理對(duì)象可以充當(dāng)原始對(duì)象的訪問(wèn)接口,從而控制對(duì)原始對(duì)象的訪問(wèn)。代理模式通常用于遠(yuǎn)程訪問(wèn)、延遲加載、訪問(wèn)控制等方面。

  1. 外觀模式(Facade Pattern)

為一組復(fù)雜的子系統(tǒng)提供一個(gè)簡(jiǎn)單的接口,從而隱藏子系統(tǒng)的復(fù)雜性。外觀模式可以降低客戶端和子系統(tǒng)之間的耦合度,同時(shí)提高客戶端的易用性。

  1. 橋接模式(Bridge Pattern)

橋接模式是一種將抽象部分與它的實(shí)現(xiàn)部分分離開(kāi)來(lái)的模式,使它們可以獨(dú)立地變化。這種模式可以避免因?yàn)閷?shí)現(xiàn)細(xì)節(jié)的變化而導(dǎo)致的代碼修改和重構(gòu)。

  1. 組合模式(Composite Pattern)

組合模式是一種將對(duì)象組合成樹(shù)形結(jié)構(gòu)的模式,使得客戶端可以像處理單個(gè)對(duì)象一樣處理對(duì)象的組合。這種模式可以使得對(duì)象之間的關(guān)系更加清晰,提高代碼的可讀性和可維護(hù)性。

  1. 享元模式(Flyweight Pattern)

享元模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,用于優(yōu)化對(duì)象的創(chuàng)建和使用。該模式通過(guò)共享相同的數(shù)據(jù),來(lái)減少內(nèi)存的使用和對(duì)象的創(chuàng)建。通常情況下,享元模式適用于存在大量相似對(duì)象的情況

行為型模式

  1. 觀察者模式(Observer Pattern)

觀察者模式是一種對(duì)象間的一對(duì)多依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴它的對(duì)象都會(huì)收到通知并自動(dòng)更新。這種模式可以降低對(duì)象之間的耦合度,提高系統(tǒng)的靈活性和可擴(kuò)展性。

  1. 策略模式(Strategy Pattern)

策略模式是一種定義一系列算法的模式,它將每個(gè)算法封裝在一個(gè)類中,并使它們可以互相替換。這種模式可以避免使用大量的條件語(yǔ)句和重復(fù)代碼,提高代碼的可維護(hù)性和可擴(kuò)展性。

  1. 迭代器模式(Iterator Pattern)

迭代器模式是一種訪問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素的方式,而又不需要暴露該對(duì)象的內(nèi)部表示。這種模式可以讓客戶端透明地訪問(wèn)聚合對(duì)象中的元素,同時(shí)避免了聚合對(duì)象的數(shù)據(jù)結(jié)構(gòu)對(duì)客戶端的依賴。

  1. 命令模式(Command Pattern)

將請(qǐng)求封裝成對(duì)象,從而使不同的請(qǐng)求可以被不同的對(duì)象處理。命令模式可以將請(qǐng)求的發(fā)送者和接收者解耦,同時(shí)支持請(qǐng)求的撤銷和重做

  1. 責(zé)任鏈模式(Chain of Responsibility Pattern)

將請(qǐng)求的發(fā)送者和接收者解耦,通過(guò)一條由多個(gè)處理對(duì)象組成的鏈來(lái)處理請(qǐng)求。責(zé)任鏈模式可以根據(jù)需求動(dòng)態(tài)地組合處理對(duì)象,從而實(shí)現(xiàn)請(qǐng)求的自動(dòng)轉(zhuǎn)發(fā)和處理。

  1. 模板方法模式(Template Method Pattern)

定義一個(gè)操作中的算法骨架,將一些步驟延遲到子類中。模板方法模式可以提高代碼的復(fù)用性和可維護(hù)性,同時(shí)可以避免子類中的代碼重復(fù)

  1. 狀態(tài)模式(State Pattern)

允許對(duì)象在內(nèi)部狀態(tài)發(fā)生改變時(shí)改變它的行為。狀態(tài)模式將對(duì)象的行為和狀態(tài)進(jìn)行分離,從而將復(fù)雜的條件判斷轉(zhuǎn)化為簡(jiǎn)單的狀態(tài)切換。

  1. 中介者模式(Mediator Pattern)

用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互,從而使對(duì)象之間的交互松散耦合。中介者模式可以簡(jiǎn)化對(duì)象之間的交互,同時(shí)降低對(duì)象之間的依賴關(guān)系。

  1. 解釋器模式(Interpreter Pattern)

給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,該解釋器使用該表示來(lái)解釋語(yǔ)言中的句子。解釋器模式可以將復(fù)雜的語(yǔ)言轉(zhuǎn)化為易于處理的數(shù)據(jù)結(jié)構(gòu),從而使得語(yǔ)言的解釋更加容易。

  1. 訪問(wèn)者模式(Visitor Pattern)

訪問(wèn)者模式是一種行為設(shè)計(jì)模式,它可以讓你將算法與它們操作的對(duì)象分離。這樣,你可以在不修改對(duì)象結(jié)構(gòu)的情況下,向現(xiàn)有的對(duì)象結(jié)構(gòu)添加新的操作。

  1. 備忘錄模式(Memento Pattern)
    備忘錄模式是一種行為型設(shè)計(jì)模式,它允許我們將對(duì)象的狀態(tài)保存在備忘錄對(duì)象中,從而可以在以后恢復(fù)對(duì)象的狀態(tài)。該模式通常用于需要撤銷、恢復(fù)操作的場(chǎng)景,例如文本編輯器、繪圖應(yīng)用等。備忘錄模式通過(guò)將狀態(tài)保存在備忘錄對(duì)象中來(lái)實(shí)現(xiàn)狀態(tài)的恢復(fù),從而保證了對(duì)象的封裝性和數(shù)據(jù)安全性。

參考資料

https://dofactory.com/net/abstract-factory-design-pattern

https://refactoring.guru/design-patterns文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-549879.html

到了這里,關(guān)于重溫設(shè)計(jì)模式系列 --- 完整精華篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 重溫設(shè)計(jì)模式 --- 抽象工廠模式

    抽象工廠模式 一種創(chuàng)建型設(shè)計(jì)模式,它提供了一種方式來(lái)封裝一組具有相同主題的工廠,而不必指定它們具體的類。這樣,客戶端代碼就可以使用抽象工廠來(lái)創(chuàng)建一組相關(guān)的對(duì)象,而不必關(guān)心實(shí)際創(chuàng)建的具體類。 抽象工廠模式有以下幾個(gè)主要角色: 抽象工廠(AbstractFactory)

    2024年02月13日
    瀏覽(37)
  • 重溫設(shè)計(jì)模式 --- 觀察者模式

    觀察者模式 是一種行為型設(shè)計(jì)模式,它允許對(duì)象之間建立一種一對(duì)多的關(guān)系,使得當(dāng)一個(gè)對(duì)象狀態(tài)改變時(shí),所有依賴它的對(duì)象都能夠自動(dòng)得到通知并更新自己的狀態(tài)。該模式可以幫助我們實(shí)現(xiàn)松耦合的系統(tǒng),以便更好地應(yīng)對(duì)變化和擴(kuò)展。 在觀察者模式中,有兩個(gè)角色: 觀察

    2024年02月13日
    瀏覽(22)
  • 設(shè)計(jì)模式精華版匯總

    以下是個(gè)人整理的設(shè)計(jì)模式匯總,將會(huì)持續(xù)更新工作和面試中經(jīng)常用到的設(shè)計(jì)模式。 設(shè)計(jì)模式 - 裝飾者模式:動(dòng)態(tài)地為對(duì)象添加額外的功能 設(shè)計(jì)模式 - 代理模式:控制訪問(wèn)的設(shè)計(jì)模式 設(shè)計(jì)模式 - 門面模式:簡(jiǎn)化復(fù)雜系統(tǒng)的接口調(diào)用 設(shè)計(jì)模式 - 模板方法模式:優(yōu)化代碼復(fù)用與

    2024年02月15日
    瀏覽(16)
  • Gof23設(shè)計(jì)模式之單例模式(完整)

    單例模式(Singleton pattern)是Java中最簡(jiǎn)單的設(shè)計(jì)模式之一。這種設(shè)計(jì)模式屬于創(chuàng)建型模型,它提供了一種創(chuàng)建對(duì)象的最佳方式。 這種模式涉及到一個(gè)單一的類,該類負(fù)責(zé)創(chuàng)建自己的對(duì)象,同時(shí)確保只有單個(gè)對(duì)象被創(chuàng)建。這個(gè)類提供了一種訪問(wèn)其唯一的對(duì)象的方式,可以直接訪

    2024年02月10日
    瀏覽(29)
  • 結(jié)構(gòu)型設(shè)計(jì)模式之組合模式【設(shè)計(jì)模式系列】

    結(jié)構(gòu)型設(shè)計(jì)模式之組合模式【設(shè)計(jì)模式系列】

    C++技能系列 Linux通信架構(gòu)系列 C++高性能優(yōu)化編程系列 深入理解軟件架構(gòu)設(shè)計(jì)系列 高級(jí)C++并發(fā)線程編程 設(shè)計(jì)模式系列 期待你的關(guān)注哦?。?! 現(xiàn)在的一切都是為將來(lái)的夢(mèng)想編織翅膀,讓夢(mèng)想在現(xiàn)實(shí)中展翅高飛。 Now everything is for the future of dream weaving wings, let the dream fly in reali

    2024年02月15日
    瀏覽(24)
  • 結(jié)構(gòu)型設(shè)計(jì)模式之代理模式【設(shè)計(jì)模式系列】

    結(jié)構(gòu)型設(shè)計(jì)模式之代理模式【設(shè)計(jì)模式系列】

    C++技能系列 Linux通信架構(gòu)系列 C++高性能優(yōu)化編程系列 深入理解軟件架構(gòu)設(shè)計(jì)系列 高級(jí)C++并發(fā)線程編程 設(shè)計(jì)模式系列 期待你的關(guān)注哦?。。?現(xiàn)在的一切都是為將來(lái)的夢(mèng)想編織翅膀,讓夢(mèng)想在現(xiàn)實(shí)中展翅高飛。 Now everything is for the future of dream weaving wings, let the dream fly in reali

    2024年02月16日
    瀏覽(18)
  • 設(shè)計(jì)模式系列-外觀模式

    設(shè)計(jì)模式系列-外觀模式

    一、上篇回顧 上篇我們主要講述了創(chuàng)建型模式中的最后一個(gè)模式-原型模式,我們主要講述了原型模式的幾類實(shí)現(xiàn)方案,和原型模式的應(yīng)用的場(chǎng)景和特點(diǎn),原型模式 適合在哪些場(chǎng)景下使用呢?我們先來(lái)回顧一下我們上篇講述的3個(gè)常用的場(chǎng)景。 1、我們?cè)谶\(yùn)行態(tài)的時(shí)候,動(dòng)態(tài)的

    2024年02月09日
    瀏覽(21)
  • 設(shè)計(jì)模式系列-原型模式

    設(shè)計(jì)模式系列-原型模式

    一、上篇回顧 上篇?jiǎng)?chuàng)建者模式中,我們主要講述了創(chuàng)建者的幾類實(shí)現(xiàn)方案,和創(chuàng)建者模式的應(yīng)用的場(chǎng)景和特點(diǎn),創(chuàng)建者模式適合創(chuàng)建復(fù)雜的對(duì)象,并且這些對(duì)象的每 個(gè)組成部分的詳細(xì)創(chuàng)建步驟可以是動(dòng)態(tài)的變化的,但是每個(gè)對(duì)象的組裝的過(guò)程來(lái)說(shuō)可能是相對(duì)固定的或者說(shuō)是

    2024年02月09日
    瀏覽(16)
  • 行為型設(shè)計(jì)模式之觀察者模式【設(shè)計(jì)模式系列】

    行為型設(shè)計(jì)模式之觀察者模式【設(shè)計(jì)模式系列】

    C++技能系列 Linux通信架構(gòu)系列 C++高性能優(yōu)化編程系列 深入理解軟件架構(gòu)設(shè)計(jì)系列 高級(jí)C++并發(fā)線程編程 設(shè)計(jì)模式系列 期待你的關(guān)注哦!?。?現(xiàn)在的一切都是為將來(lái)的夢(mèng)想編織翅膀,讓夢(mèng)想在現(xiàn)實(shí)中展翅高飛。 Now everything is for the future of dream weaving wings, let the dream fly in reali

    2024年02月15日
    瀏覽(19)
  • 設(shè)計(jì)模式系列-創(chuàng)建者模式

    設(shè)計(jì)模式系列-創(chuàng)建者模式

    一、上篇回顧 上篇我們主要講述了抽象工廠模式和工廠模式。并且分析了該模式的應(yīng)用場(chǎng)景和一些優(yōu)缺點(diǎn),并且給出了一些實(shí)現(xiàn)的思路和方案,我們現(xiàn)在來(lái)回顧一下: 抽象工廠模式:一個(gè)工廠負(fù)責(zé)所有類型對(duì)象的創(chuàng)建,支持無(wú)縫的新增新的類型對(duì)象的創(chuàng)建。這種情況是通過(guò)配

    2024年02月10日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包