裝飾者設計模式

2021-08-28 07:24:36 字數 1243 閱讀 2349

裝飾者模式具有的一些特徵

1,裝飾者(decorator)和被裝飾(擴充套件)的物件有著相同的超類(supertype)。

2,我們可以用多個裝飾者去裝飾乙個物件。

3,我們可以用裝飾過的物件替換**中的原物件,而不會出問題(因為他們有相同的超類)。

4,裝飾者可以在委託(delegate,即呼叫被裝飾的類的成員完成一些工作)被裝飾者的行為完成之前或之後加上他自己的行為。

5,乙個物件能在任何時候被裝飾,甚至是執行時。

不多說了自己敲一邊**就能體會到裡面的精華

**如下:

public abstract class component
/**

* created by kim on 2018/9/20.

*/public class componentdectorator extends component

@override

public void display()

}

/**

* created by kim on 2018/9/20.

*/public class blackboarderdecorator extends componentdectorator

public void display()

private void setblackboarder()

}

package com.mj.designmode.decorator_mode;

/** * created by kim on 2018/9/20.

* */

public class scrollbardecorator extends componentdectorator

public void display()

public void setscrollbar()

}

呼叫**

component component,components,componentb;

component=new window();

components = new scrollbardecorator(component);

components.display();

componentb=new blackboarderdecorator(components);

componentb.display();

裝飾者設計模式

裝飾者模式 動態地給乙個物件新增一些額外的職責,就增加功能來說,decorator模式比生成子類更為靈活。讓decorator物件為自己新增功能。有時候使用concretecomponent的派生類提供核心功能,在這種情況就是用concretecomponent替代了component的功能,而且裝...

裝飾者設計模式

package 模式練習部分 首先建立,手機介面,然後建立最基本功能的手機,也就是只有接 功能的手機,然後在這個基礎上在設計乙個裝飾類 開始具體的裝飾過程,按照本例中的步驟,下面要做的就是對於具體裝飾者的建立,先有彩鈴,然後開始接 然後在接完 以後,沒有什麼其他的事情了,開始看會兒電視休息一下。建立...

裝飾者 設計模式

裝飾者 設計模式 1.增強乙個類的 功能,給某個類的 某個方法 增強了,重寫方法 2.讓裝飾類 互相裝飾 實現的步驟 1.在裝飾類的 內部 維護乙個 被裝飾類的 引用 最好是父類的引用 例如 bufferedline 內部維護的 是 bufferedreader類的引用 2.讓裝飾類 有乙個 共同的...