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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【设计模式】三大类:创建型模式、结构型模式、行为型模式

發(fā)布時間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【设计模式】三大类:创建型模式、结构型模式、行为型模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 創(chuàng)建型模式

本人理解:以C++為例,創(chuàng)建對象時,用關(guān)鍵字new來創(chuàng)建(實例化)對象。用一個函數(shù)或類將new的過程封裝起來,就是創(chuàng)建型模式。

《設(shè)計模式》中的描述:
創(chuàng)建型模式抽象了實例化過程。它們幫助一個系統(tǒng)獨立于如何創(chuàng)建、組合和表示它的那些對象。
一個類----創(chuàng)建型模式使用繼承改變被實例化的類,
一個對象-創(chuàng)建型模式將實例化委托給另一個對象。
(看后,一頭霧水)

工廠模式(Factory Pattern)
抽象工廠模式(Abstract Factory Pattern)
單例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)

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

本人理解:創(chuàng)建型模式關(guān)注一個類或?qū)ο蟮膶嵗?#xff1b;結(jié)構(gòu)型模式關(guān)注多個類或?qū)ο蠼M合成更復(fù)雜的對象,是為了更靈活的構(gòu)造對象。

《設(shè)計模式》中的描述:結(jié)構(gòu)性模式涉及到如何組合類和對象以獲得更大的結(jié)構(gòu)。
結(jié)構(gòu)型類----模式采用繼承機制來組合接口和實現(xiàn)。
結(jié)構(gòu)型對象-模式不是對接口和實現(xiàn)進行組合,而是描述了如何對一些對象進行組合,從而實現(xiàn)新功能的一些方法。
(看后,一頭霧水)

適配器模式(Adapter Pattern)
橋接模式(Bridge Pattern)
過濾器模式(Filter、Criteria Pattern)
組合模式(Composite Pattern)
裝飾器模式(Decorator Pattern)
外觀模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)

3 行為型模式

本人理解:上述兩種模式都是出于一定目的(復(fù)用代碼、修改時更靈活、容易維護等等)創(chuàng)建對象,對象之間一通信,一個程序就跑起來啦,把對象之間通信這部分,再總結(jié)總結(jié),起個名字,就叫“行為型模式”。

《設(shè)計模式》中的描述:行為模式涉及到算法和對象間職責(zé)的分配。
行為模式不僅描述對象和類的模式,還描述它們之間的通信模式。
行為模式使用繼承機制在類間分派行為。(還是一頭霧水)

責(zé)任鏈模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解釋器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
備忘錄模式(Memento Pattern)
觀察者模式(Observer Pattern)
狀態(tài)模式(State Pattern)
空對象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
訪問者模式(Visitor Pattern)

各個模式之間的關(guān)系圖

參見《設(shè)計模式》第8頁

設(shè)計模式的六大原則

1、開閉原則(Open Close Principle)

本人理解:增加新功能時,重新定義一個接口(開),不要修改原來的接口(閉)(為了向下兼容,如果修改了,可能對已經(jīng)使用這個接口的代碼造成影響)。

開閉原則的意思是:對擴展開放,對修改關(guān)閉。在程序需要進行拓展的時候,不能去修改原有的代碼,實現(xiàn)一個熱插拔的效果。簡言之,是為了使程序的擴展性好,易于維護和升級。想要達到這樣的效果,我們需要使用接口和抽象類,后面的具體設(shè)計中我們會提到這點。

2、里氏代換原則(Liskov Substitution Principle)
本人理解:子類包括基類的全部功能。

里氏代換原則是面向?qū)ο笤O(shè)計的基本原則之一。 里氏代換原則中說,任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。LSP 是繼承復(fù)用的基石,只有當(dāng)派生類可以替換掉基類,且軟件單位的功能不受到影響時,基類才能真正被復(fù)用,而派生類也能夠在基類的基礎(chǔ)上增加新的行為。里氏代換原則是對開閉原則的補充。實現(xiàn)開閉原則的關(guān)鍵步驟就是抽象化,而基類與子類的繼承關(guān)系就是抽象化的具體實現(xiàn),所以里氏代換原則是對實現(xiàn)抽象化的具體步驟的規(guī)范。

3、依賴倒轉(zhuǎn)原則(Dependence Inversion Principle)

這個原則是開閉原則的基礎(chǔ),具體內(nèi)容:針對接口編程,依賴于抽象而不依賴于具體。

4、接口隔離原則(Interface Segregation Principle)

這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。它還有另外一個意思是:降低類之間的耦合度。由此可見,其實設(shè)計模式就是從大型軟件架構(gòu)出發(fā)、便于升級和維護的軟件設(shè)計思想,它強調(diào)降低依賴,降低耦合。

5、迪米特法則,又稱最少知道原則(Demeter Principle)

最少知道原則是指:一個實體應(yīng)當(dāng)盡量少地與其他實體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對獨立。

6、合成復(fù)用原則(Composite Reuse Principle)

合成復(fù)用原則是指:盡量使用合成/聚合的方式,而不是使用繼承

總結(jié)

以上是生活随笔為你收集整理的【设计模式】三大类:创建型模式、结构型模式、行为型模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

歡迎分享!

轉(zhuǎn)載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:【设计模式】三大类:创建型模式、结构型模式、行为型模式