GoF設計模式一共有23個,一般可以按目的和作用范圍來進行劃分,具體劃分方法如下:
第一,這些模式按目的(即完成什么樣任務)來劃分為創建型、結構型和行為型這三種模式:
創建型:用來創建物件,單例、原型、抽象工廠、建造者、工廠方法這五個都屬于這一分類,這種類別起到了將物件的創建與其使用進行分離解耦,
結構型:用來處理類或物件之間如何組合以構成更大的結構體,橋接、裝飾、配接器、代理、外觀、享元、組合這七個屬于這一類,
行為型:用來處理類或物件之間如何互動和分配職責,模板方法、解釋器、策略、命令、職責鏈、狀態、觀察者、中介者、迭代器、訪問者、備忘錄這11個屬于這一類,
第二,按其是用到類上還是物件上來劃分,可以分為類和物件兩種模式,
類模式:主要用來處理類與其子類之間繼承關系,這種關系是編譯時確定的,運行時是靜態和不變的,工廠方法、模板方法、(類)配接器、解釋器這四個屬于這一種,
物件模式:用于處理物件之間的組合或者聚合關系,運行時可以變化,是動態的,其他的19種都屬于這一模式,具體見下圖,
將這兩種分類方法作為縱橫方向,可以將具體的模式分類列一個表如下,
|
23種GoF設計模式分類表 |
|||
|
目的 范圍 |
創建型/Creational |
結構型/Structural |
行為型/Behavioural |
|
型別/Class |
工廠方法/Factory Method |
配接器(類)/Adapter(class) |
解釋器/Interpreter 模板方法/Template method |
|
物件型/Object |
單例/Singleton 原型/Prototype 抽象工廠/Abstract Factory 建造者/Builder |
橋接/Bridge 裝飾/Decorator 代理/Proxy 外觀/Facade 享元/Flyweight 組合/Composite 配接器(物件)/Adapter(object) |
職責鏈/Chain of Responsibility 命令/Command 觀察者/Observer 中介者/Mediator 狀態/State 訪問者/Visitor 迭代器/Iterator 備忘錄Memento 策略/Strategy |
注意:一般初學者,因為記起來比較難記,本人原來是按照取每種模式的第一個字的諧音構成一句話來記憶,后面帶有中劃線的斜體的是類模式,雖說有些不正經、但是效果明顯,如果深入理解了,就會很自然地根據名字劃分,不需要這么記憶,
創建型:單元抽建法 ——> 單例、原型、抽象工廠、建造者、工廠方法,
結構型:喬裝(后)呆(在)外(面)像祖師(爺) ——> 橋接、裝飾、代理、外觀、享元、組合、配接器(物件或者類)
行為型:除過前面的都是行為型,或者如下:
知名觀眾裝碟防被測(試帶有)芥末 ——> 職責鏈、命令、觀察者、中介者、狀態、迭代器、訪問者、備忘錄、策略、解釋器、模板方法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/35310.html
標籤:設計模式
上一篇:【設計模式】工廠方法模式
下一篇:設計模式學習筆記
