java設計模式之裝飾器模式

2021-08-15 20:31:17 字數 956 閱讀 2911

裝飾器?

故名思意,就是在不改變物件原有功能情況下增強該物件的功能。這裡面有兩點需要注意:

裝飾類與被裝飾類必須繼承同一抽象類或實現同一介面。即要保持裝飾類與被裝飾類的功能一致。

裝飾類在構建例項時必須要傳遞乙個父類的子類例項引數。即必須要有被裝飾的物件。

結構

示例介面類

inte***ce  father{

void options();

乙個子類

child implements father{

void options(){

//子類實現功能

抽象裝飾器

abstract decorator{

father obj;

decorator(father obj){

this.obj = obj;

void options(){

//裝飾器增加一些操作

//執行被裝飾物件的操作

obj.options();

裝飾器子類

decoratorchild extends decorator{

decoratorchild(father obj){

super(obj);

void options(){

//具體裝飾器新增的一些操作

super.options();

使用father f = new decoratorchild(new child());

f.options();

或decoratorchild dc = new decoratorchild(new child());

dc.options();

應用場景

對於那些介面實現眾多,為了便於對介面功能進行擴充套件,可以使用該模式。

java設計模式之裝飾器模式

一 裝飾器模式簡介 裝飾器模式可以動態給乙個物件新增一些額外的職責,同時又不改變其結構。就象在牆上刷油漆.使用decorator模式相比用生成子類方式達到功能的擴充顯得更為靈活。這種模式建立了乙個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。裝飾器模式的應用場景 1 ...

Java設計模式 裝飾器模式

我們 不從最基本的裝飾器模式概念入手 先來看問題好了。提出問題 假如 有以下海關入關通用處理方法 public class shanghaicustoms public class beijingcustoms 現在我們需要新加入需求,原先的處理流程不變,但是需要加入security checks和...

Java 設計模式 裝飾器模式

本文由 luzhuo 編寫,請保留該資訊.原文 裝飾模式可以動態的給乙個物件增加一些額外的功能 增強功能 相比於繼承,裝飾模式能對不支援繼承的類進行增強 並且比繼承更靈活,不需要生成大量的子類 public inte ce phonepublic final class phoneimpl impl...