Java 裝飾模式 (Decorator)

2021-09-08 18:10:13 字數 1973 閱讀 9904

動態的將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的取代方案

/** * 元件:裝飾類和被裝飾類 都要繼承:為了型別保持一致

*@author always

* */

public

abstract

class

component

package gx.component.impl;

import gx.component.component;

/** * 裝飾類的抽象類

*@author always

* */

public

abstract

class

decorator

extends

component

package gx.component.impl;

import gx.component.component;

/** *

* 被包裝的類

*@author always

* */

public

class

phone

extends

component

public

intcost()

}

package gx.decorator.impl;

import gx.component.component;

import gx.component.impl.decorator;

/** *

* 裝飾1:給手機買個殼

*@author always

* */

public

class

daike

extends

decorator

public

daike(component component)

public

void

description()

public

intcost()

}

package gx.decorator.impl;

import gx.component.component;

import gx.component.impl.decorator;

/** *

* 裝飾2:給手機貼個膜

*@author always

* */

public

class

tiemo

extends

decorator

public

tiemo(component component)

public

void

description()

public

intcost()

}

測試類:

package gx;

import gx.component.component;

import gx.component.impl.phone;

import gx.decorator.impl.daike;

import gx.decorator.impl.tiemo;

import junit.framework.testcase;

public

class

testdecorator

extends

testcase

}

理解python函式裝飾器 decorator

函式裝飾器是python有別於其他語言的主要特徵之一,這也是充分發揮了動態語言的優勢,可以使我們在編寫程式時更加簡潔。但最開始接觸函式裝飾器有點難以理解,本文盡量用簡單的語言來理解函式裝飾器。在理解函式裝飾器之前,最好儲備並理解了以下python的基礎知識 生活中,化妝可能是最容易理解裝飾行為的例子...

Java 裝飾模式

動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更加靈活。盜圖 component是定義了乙個物件介面,可以誒這些uixiang動態新增職責。concretecomponent是定義了乙個具體物件,也可以給這個物件新增一些職責,decorator,裝飾抽象類,繼承了compon...

java 裝飾模式

裝飾模式 動態地給乙個物件新增一些額外的職責。就增加功能來說,decorator模式相比生成子類更為靈活 適用性 1.在不影響其他物件的情況下,以動態 透明的方式給單個物件新增職責。2.處理那些可以撤消 再不用使用的類或方法 的職責。3.當不能採用生成子類的方法進行擴充時。參與者 1.compone...