Java設計模式 裝飾模式

2021-09-23 17:41:36 字數 1338 閱讀 4336

動態地給物件新增一些額外的職責。就功能來說裝飾模式相比生成子類更為靈活。

裝飾模式的結構中包括四個角色。

+ 抽象元件(component):抽象元件是乙個抽象類或者介面。抽象元件定義了「被裝飾者」需要進行「裝飾」的方法。

+ 具體產品(concretecomponent):具體元件是抽象元件的乙個子類,具體元件的例項稱為「被裝飾者」。

+ 裝飾(decorator):裝飾也是抽象元件的乙個子類,但裝飾還包含乙個抽象元件宣告的變數以儲存「被裝飾者」的引用。裝飾可以是抽象類也可以是乙個非抽象類,如果是非抽象類,那麼該類的例項稱作「裝飾者」。

+ 具體裝飾(concretedecorator):具體裝飾是裝飾的乙個非抽象子類,具體裝飾的例項稱作「裝飾者」。

package decorator;

public

inte***ce

bird

package decorator;

public

class

sparrow

implements

bird

}

package decorator;

public

abstract

class

decorator

implements

bird

}

package decorator;

public

class

sparrowdecorator

extends

decorator

@override

public

intfly()

public

intelefly()

}

package decorator;

public

class

public

static

void

main(string args)

}

mygithub

Java 設計模式 裝飾模式

看了大話設計模式此章節多遍才稍微有點理解,特此記錄。深入淺出,通俗易懂。情景 小菜要去見未來女友 嬌嬌,來個服裝打扮的設計。第一彈 客戶端 public static void main string args 問題來了,嬌嬌喜歡超人,小菜這次想穿的是超人,咋辦?直接修改小菜的類嗎?這就違背了開閉原...

java設計模式 裝飾模式

什麼是裝飾模式 裝飾模式就是動態的為乙個物件新增新的功能,它是一種代替繼承的技術,毋須通過繼承增加子類就能拓展物件功能的模式。開發中應用場景 1.io流中,設計的輸入和輸出 2.servlet api提供的乙個re quest物件的decrator模式的預設實現類httpservletrequest...

Java設計模式 裝飾模式

目錄 裝飾模式 定義 通用類圖 角色分類 抽象構件 component 具體構件 concretecomponent 裝飾角色 docorator 具體裝飾角色 concretedecoratora和b 裝飾模式與類繼承的區別 裝飾模式的特點 案例分析 輸出結果如圖所示 分析1 分析2 分析3 分析...