23種GoF設計模式的分類

GoF設計模式一共有23個。通常能夠按目的和做用範圍來進行劃分,具體劃分方法以下:設計模式

第一,這些模式按目的(即完成什麼樣任務)來劃分爲建立型、結構型和行爲型這三種模式:ui

建立型:用來建立對象。單例、原型、抽象工廠、建造者、工廠方法這五個都屬於這一分類。這種類別起到了將對象的建立與其使用進行分離解耦。spa

結構型:用來處理類或對象之間如何組合以構成更大的結構體。橋接、裝飾、適配器、代理、外觀、享元、組合這七個屬於這一類。設計

行爲型:用來處理類或對象之間如何交互和分配職責。模板方法、解釋器、策略、命令、職責鏈、狀態、觀察者、中介者、迭代器、訪問者、備忘錄這11個屬於這一類。代理

 

第二,按其是用到類上仍是對象上來劃分,能夠分爲類和對象兩種模式。server

類模式:主要用來處理類與其子類之間繼承關係,這種關係是編譯時肯定的,運行時是靜態和不變的。工廠方法、模板方法、(類)適配器、解釋器這四個屬於這一種。對象

對象模式:用於處理對象之間的組合或者聚合關係,運行時能夠變化,是動態的。其餘的19種都屬於這一模式。具體見下圖。繼承

將這兩種分類方法做爲縱橫方向,能夠將具體的模式分類列一個表以下。ci

 

23種GoF設計模式分類表pdo

    目的

範圍

建立型/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

 

 

注意:通常初學者,由於記起來比較難記,本人原來是按照取每種模式的第一個字的諧音構成一句話來記憶,後面帶有中劃線的斜體的是類模式,雖然說有些不正經、可是效果明顯。若是深刻理解了,就會很天然地根據名字劃分,不須要這麼記憶。

建立型:單元抽建 ——> 單例、原型、抽象工廠、建造者、工廠方法

結構型:喬裝(後)呆(在)外(面)像祖(爺) ——> 橋接、裝飾、代理、外觀、享元、組合、適配器(對象或者類)

行爲型:除過前面的都是行爲型。或者以下:

             知名觀衆裝碟防被測(試帶有)芥末 ——> 職責鏈、命令、觀察者、中介者、狀態、迭代器、訪問者、備忘錄、策略、解釋器、模板方法。 

相關文章
相關標籤/搜索