<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      設計模式簡介

      設計模式簡介

         概要

         1995年,有四位小伙伴合著了一本書,書名叫做《設計模式:可復用面向對象軟件的基礎》里面共收錄了23種設計模式。

         這23種設計模式,又可以根據設計的目的,分三大類型:創建型結構型行為型。下面分別來介紹各個類型下的設計模式。

         每一個類型所包含的具體設計模式,總結在下圖當中:

      design-pattern

         下面分別來介紹各個類型下的設計模式。

         一、創建型模式(5 種

         這一類設計模式的目的是用于創建對象。

         包含了5種設計模式:

         1.   工廠方法模式:子類決定實例化

         2.  抽象工廠模式:抽象接口

         3.  單例模式: 唯一實例

         4.  原型模式: 原型實例,拷貝

         5.  建造者模式:類和構造分離

         二、結構型模式(7 種

         這一類設計模式的目的是優化不同類、對象、接口之間的結構關系。

         包含了7種設計模式:

         代理模式:代理控制

         裝飾器模式:附加職責 

         橋接模式:抽象和實現分離

         組合模式:整體-不分,樹形結構

         適配器模式:轉換,兼容接口

         外觀模式:對外統一接口

         享元模式:細粒度,共享

         其中有兩組設計模式很相似,但是側重點和適用場景各有不同,如下:

         1) 裝飾器模式和代理模式很相似,不同點是裝飾器模式關注增強功能,代理模式關注控制訪問;

         2)適配器模式和橋接模式很相似,不同點是適配器模式是事后補救,把不兼容接口適配起來,橋接是預設設計,將實現與抽象分類,支持獨立擴展

         三、行為型模式(11 種

         這一類設計模式的目的是更好地實現類與類之間的交互以及算法的執行。包含了 11 種設計模式:

         1. 觀察者模式:通知、自動更新

         2. 策略模式:算法替換

         3. 命令模式:日志記錄,可撤銷

         4. 狀態模式:狀態變成類

         5. 備忘錄模式:保存,恢復

         6. 解釋器模式:解釋器,虛擬機

         7. 迭代器模式:順序訪問,不暴露內部

         8. 中介者模式:不直接引用

         9. 訪問者模式:數據和操作分離

         10. 模版方法模式: 模版方法

         11. 職責鏈模式:傳遞請求,職責鏈接

         其中有兩組設計模式很相似,但是側重點和適用場景各有不同,如下:

         1)策略模式 VS 狀態模式,都是通過“上下文 + 接口 + 實現類”組合方式實現行為的封裝和變化,利用多態動態改變行為。區別是策略模式側重外部控制來決定選擇哪種策略,狀態模式側重自動或內部決定,且不同狀態之間有“流程依賴”。

         2)職責鏈模式 VS 命令模式,都涉及“請求的處理”與“請求者和處理者的解耦”,區別是職責鏈模式側重多個候選處理者,命令模式側重請求封裝與調用解耦。

         3)觀察者模式 VS 中介者模式,都涉及處理多個對象之間的交互關系,并解耦組件之間的直接通信。觀察者模式側重以“主題-訂閱者”方式實現一對多依賴,中介者模式側重所有組件通過一個中介進行交互,強調中心化協調,各組件不直接引用彼此。

          四、常用的設計模式

         常用的有單例模式、工廠模式、觀察者模式、建造者模式、策略模式、模版方法模式、裝飾器模式、職責鏈模式等

         PS:補充一下面向對象的設計原則

         1.  依賴倒置原則

         依賴倒置原則(Dependency Inversion Principle,簡稱DIP)是面向對象設計中的一條原則,它是面向對象設計中的五個SOLID原則之一。該原則提出了兩個關鍵思想:

         高層模塊不應該依賴于底層模塊,兩者都應該依賴于抽象。

         抽象不應該依賴于具體,具體應該依賴于抽象。

         說明:依賴倒置原則的目的是實現模塊之間的松耦合,提高系統的可維護性、可擴展性和可復用性。通過引入抽象層,高層次的模塊不需要關心底層模塊的具體實現細節,只需要依賴于抽象接口。
         這樣,當底層模塊發生變化時,高層模塊不受影響,只需要保持對抽象的依賴關系。

         2.  里氏替換原則

         定義:子類型必須能夠替換掉他們的父類型   分析:子類擁有父類所有非private的行為和屬性,正因為有了里氏替換原則,使得繼承復用成為了可能,只有當子類可以替換掉父類,軟件單位的功能不受到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。

         正是由于子類的可替換性才使得父類類型的模塊在無需修改的情況下就可以擴展

         3.  迪米特原則

         也叫最少知道原則,迪米特法則強調了類之間的松耦合

         定義: 如果兩個類不必彼此直接通信,那么這兩個類就不應當發生直接的相互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用

         分析:類之間的耦合越弱,越有利于復用,一個處在弱耦合的類被修改,不會對有關系的類造成波及。

         4.  開閉原則

         一個軟件實體如類、模塊和函數應該對擴展開放,對修改關閉。即一個軟件實體應該通過擴展來實現變化,而不是通過修改已有的代碼來實現變化。

         在程序中對“擴展”開放,對“修改”封閉。如果每次業務改動都要增加新的if-else,就涉及對舊有代碼的修改,不但容易出錯,可讀性也不好。

       

      posted @ 2025-08-06 10:29  歡樂豆123  閱讀(9)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品老熟女乱一区二区| 毛片tv网站无套内射tv网站| 亚洲精品成人福利网站| 亚洲gv天堂无码男同在线观看| 麻豆精品久久久久久久99蜜桃| 天堂V亚洲国产V第一次| 亚洲国产精品一区在线看| 国产精品午夜精品福利| 亚洲午夜福利网在线观看| 亚洲一区二区三区激情在线| 亚洲国产成人无码AV在线影院L| 男女做aj视频免费的网站| 国产人妇三级视频在线观看| 无码人妻一区二区三区AV| 夜色福利站WWW国产在线视频| 国产绿帽在线视频看| 亚洲中文字幕无码久久精品1| 国产精品系列在线免费看| 中国熟妇毛多多裸交视频| 国产在线观看免费人成视频| 天堂…中文在线最新版在线| 国产在线精品福利91香蕉| 精品日本免费一区二区三区| 将乐县| 亚洲日本欧洲二区精品| 一本色道国产在线观看二区| 欧美亚洲另类 丝袜综合网| 男人和女人做爽爽免费视频| 免费无码毛片一区二三区| 日本不卡码一区二区三区| 四虎www永久在线精品| 亚洲第一精品一二三区| 资源在线观看视频一区二区| 国产精品国产精品一区精品| 日日躁夜夜躁狠狠久久av| 国产精品毛片av999999| 亚洲qingse中文字幕久久| 亚洲春色在线视频| 亚洲国产精品综合久久2007 | 亚洲中文字幕精品第三区| 亚洲中文精品一区二区|