《設計模式之禪》讀書筆記 12 裝飾模式

2021-08-17 15:25:05 字數 1981 閱讀 3615

定義

裝飾模式可以動態地給乙個物件新增一些額外的職責。

類圖

component抽象構件

component是乙個介面或者是抽象類,就是定義我們最核心的物件,也就是最原始的物件。

concretecomponent具體構件

concretecomponent是最核心、最原始、最基本的介面或抽象類的實現。

decorator裝飾角色

一般是乙個抽象類,實現介面或者抽象方法,且屬性裡有乙個private變數指向component抽象構件。

concretedecorator具體裝飾角色

concretedecorator把最核心的、最原始的、最基本的東西裝飾成其他東西。

實現抽象構件:

package com.sigalhu.decoratorpattern;

public

abstract

class

component

具體構件:

package com.sigalhu.decoratorpattern;

public

class

concretecomponent

extends

component

}

抽象裝飾者:

package com.sigalhu.decoratorpattern;

public

abstract

class

decorator

extends

component

//委託給被修飾者執行

@override

public

void

operate()

}

具體的裝飾類:

package com.sigalhu.decoratorpattern;

public

class

concretedecorator1

extends

decorator

//定義自己的修飾方法

private

void

method1()

//重寫父類的方法

@override

public

void

operate()

}

package com.sigalhu.decoratorpattern;

public

class

concretedecorator2

extends

decorator

//定義自己的修飾方法

private

void

method2()

//重寫父類的方法

@override

public

void

operate()

}

場景類:

package com.sigalhu.decoratorpattern;

public

class

client

}

優點 缺點

多層的裝飾比較複雜,因此,儘量減少裝飾類的數量,以便降低系統的複雜度。

原始碼:

《設計模式之禪》讀書筆記 策略模式

策略模式 strategy pattern 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。對於策略模式來說了解清楚它三個角色的作用,基本就差不多了。策略模式的三個角色 它也叫做上下文角色,起承上啟下封裝作用,遮蔽高層模組對策略 演算法的直接訪問,封裝可能存在的變化。策略 演算法家族...

《設計模式之禪》讀書筆記 21 狀態模式

定義 當乙個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類。類圖 state抽象狀態角色 介面或抽象類,負責物件狀態定義,並且封裝環境角色以實現狀態切換。concretestate具體狀態角色 每乙個具體狀態必須完成兩個職責 本狀態的行為管理以及趨向狀態處理,通俗地說,就是本狀態下要做...

設計模式之禪讀書筆記 建立類模式

23種設計模式可以分為三大類.建立類,結構類,行為類.建立類模式 都能夠提供物件的建立和管理職責 單例模式 保持在記憶體中只有乙個物件 工廠方法模式 抽象工廠模式 建造者模式 原型模式 通過複製的方式產生乙個新的物件 單例模式 定義 確保單例類只有乙個例項,而且自行例項化並向整個系統提供這個例項.優...