Java 設計模式 裝飾模式

2021-07-11 06:35:33 字數 1037 閱讀 2610

看了大話設計模式此章節多遍才稍微有點理解,特此記錄。

深入淺出,通俗易懂。

情景:

小菜要去見未來女友 嬌嬌,來個服裝打扮的設計。

第一彈:

客戶端**:

public static void main(string args)

問題來了,

嬌嬌喜歡超人,小菜這次想穿的是超人,咋辦? 直接修改小菜的類嗎? 這就違背了開閉原則。

解決辦法:

把裝扮的東西抽象出來,小菜需要啥衣服,就例項化對應的裝扮即可。

問題又來了,

整個配置過程大傢伙都可以看到,並且順序也固定了,先穿這個再穿那個;如何配置過程隱藏起來,順序也能靈活。

解決辦法:

簡化版的裝飾模式

// concretecomponent

public class person

public person(string name)

public void show()//decorater

public class finery extends person

@override

public void show()

}// concretedecorator

public class tshirts extends finery public class bigtrouser extends finery // 客戶端**

public static void main(string args)

java設計模式 裝飾模式

什麼是裝飾模式 裝飾模式就是動態的為乙個物件新增新的功能,它是一種代替繼承的技術,毋須通過繼承增加子類就能拓展物件功能的模式。開發中應用場景 1.io流中,設計的輸入和輸出 2.servlet api提供的乙個re quest物件的decrator模式的預設實現類httpservletrequest...

Java設計模式 裝飾模式

目錄 裝飾模式 定義 通用類圖 角色分類 抽象構件 component 具體構件 concretecomponent 裝飾角色 docorator 具體裝飾角色 concretedecoratora和b 裝飾模式與類繼承的區別 裝飾模式的特點 案例分析 輸出結果如圖所示 分析1 分析2 分析3 分析...

java設計模式 裝飾模式

裝飾 decorator 模式又叫做包裝模式。通 過一種對客戶端透明的方式來擴充套件物件的功能,是繼承關係的乙個替換方案。抽象元件角色 乙個抽象介面,是被裝飾類和 裝飾類的父介面。具體元件角色 為抽象元件的實現類。抽象裝飾角色 包含乙個元件的引用,並定義了 與抽象元件一致的介面。具體裝飾角色 為抽象...