【Java設計模式】裝飾者模式__JAVA

來源:互聯網
上載者:User

步驟一:定義一個基類,裡面放置需要裝飾的方法,基類可以是類,也可以是介面

public interface Sourceable {   public void method();}

步驟二:定義一個被裝飾類,繼承(實現)基類

public class Source implements Sourceable{@Overridepublic void method() {System.out.println("這是方法一");}}

步驟三:定義一個裝飾者,(直接或者間接繼承基類)這裡是直接實現了基類,也可以繼承基類的直接子類。

儲存基類的執行個體

public class Decorator implements Sourceable{private Sourceable source;public Decorator(Sourceable source) {super();this.source=source;}@Overridepublic void method() {System.out.println("在前面裝飾一下");source.method();System.out.println("在後面裝飾一下");}public void method2() {System.out.println("在前面裝飾一下");source.method();System.out.println("在後面裝飾一下");}}

步驟四:測試一下(注意調用的方式,要將被裝飾者執行個體傳入裝飾者中)

public class Test {    public static void main(String[] args) {Sourceable source=new Source();Sourceable obj=new Decorator(source);obj.method();}}


在IO中的InputStream和OutputStream就是使用了裝飾者模式,這裡我們使用InputStream來簡單記錄下。



被裝飾者    FilterInputStream 


-------------------------------------------------------------------------------------------------------------------------------

裝飾者 BufferedInputStream

----------------------------------------------------------------------------------------------------------------------------



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.