設計模式 裝飾器模式

2021-09-16 12:22:49 字數 1099 閱讀 5575

定義:

裝飾模式可以動態的給乙個物件增加一些額外的功能(增強功能) 相比於繼承,裝飾模式能對不支援繼承的類進行增強;並且比繼承更靈活,不需要生成大量的子類。

角色:

**實現:

public abstract class house   

public abstract void sleep();

}

public class myhouse extends house   

@override

public void sleep()

}

public abstract class bighousedecorator extends house
public class european extends bighousedecorator   

@override

public string getdescription()

@override

public void sleep()

}

@test

public void testdecorator()

本文主要介紹了裝飾器模式的概念及其實現。一般情況下,為了擴充套件乙個類經常使用繼承方式實現,由於繼承為類引入靜態特徵,並且隨著擴充套件功能的增多,子類會很膨脹。在不想增加很多子類的情況下擴充套件類,可以使用裝飾器模式。

裝飾器模式能夠動態地為物件新增功能,是從乙個物件外部來給物件新增功能,相當於改變了物件的外觀。從外部使用系統的角度看,就不再是使用原始的那個物件了,而是使用被一系列裝飾器裝飾過後的物件。這樣就能夠靈活的改變乙個物件的功能,只要動態組合的裝飾器發生了改變,那麼最終所得到的物件的功能就發生了改變。另乙個好處是裝飾器功能的復用,可以給乙個物件多次增加同乙個裝飾器,也可以用同乙個裝飾器來裝飾不同的物件。而且符合物件導向設計中的一條基本規則:」盡量使用物件組合,而不是物件繼承」。

優點是:

缺點:

設計模式 裝飾器模式

裝飾器模式 decorator pattern 允許向乙個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。這種模式建立了乙個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。public inte ce playe...

設計模式 裝飾器模式

裝飾者模式的應用場景 裝飾者模式 decorator pattern 是指在不改變原有物件的基礎之上,將功能附加到物件上,提供了比繼承更有彈性的替代方案 擴充套件原有物件的功能 屬於結構型模式。裝飾者模式在我們生活中應用也比較多如給煎餅加雞蛋 給蛋糕加上一些水果 給房子裝修等,為物件擴充套件一些額外...

設計模式 裝飾器模式

在玩lol的時候,我們會對喜歡的英雄購買相應的 每種 都有不同的效果。裝飾器模式是指在不改變現有物件結構的情況下,可以動態的對當前物件增加新的職責,它屬於物件結構型模式。裝飾器模式通過拓展的方式來修改物件,比繼承更靈活 對同乙個物件可以新增多個裝飾類,可以進行多種組合。抽象構件介面 public i...