HeadFirst設計模式 裝飾者

2022-08-17 04:57:25 字數 1315 閱讀 4670

裝飾者模式動態地將責任附加到物件上,若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。這句話摘自書中,給人讀得很生硬難懂。通俗地來說,裝飾者和被裝飾者有相同的父類,裝飾者的行為組裝著被裝飾者的行為。

/**

* @author lollipop

* @since 2019/11/26

*/public abstract class beverage

public abstract double cost();

}

/**

* @author lollipop

* @since 2019/11/26

*/public abstract class condimentdecorator extends beverage

/**

* @author lollipop

* @since 2019/11/26

*/public class mocha extends condimentdecorator

/*** 描述

** @return

*/@override

public string getdescription()

@override

public double cost()

}

/**

* @author lollipop

* @since 2019/11/26

*/public class whip extends condimentdecorator

/*** 描述

** @return

*/@override

public string getdescription()

@override

public double cost()

}

/**

* @author lollipop

* @since 2019/11/26

*/public class starbuzzcoffee

}

whip,mocha,mocha,unknown beverage $1.59裝飾者可以在所委託被裝飾者的行為之前與/或之後,加上自己的行為,以達到特定的目的。

多重巢狀,導致**複雜度高

Head First 裝飾者模式

1.舉乙個簡單的例子 一種飲料黑咖啡,不新增為原味咖啡,新增調料摩卡為摩卡咖啡,新增牛奶味牛奶咖啡,新增巧克力為巧克力咖啡。實現這個例子第乙個想法是基類黑咖啡,然後摩卡咖啡繼承自黑咖啡,牛奶咖啡 巧克力咖啡同理。這樣的實現看來還不錯,也使用了物件導向。那麼,現在又有了新的需求 1 新增兩種及以上的調...

headfirst設計模式

花了一周多一點的時間看完了headfirst的設計模式。看完之後有一種恍然大悟的感覺,仔細想想有覺得自己好像什麼也看懂。簡單說下對這本書的一點感悟吧,headfirst的書比較通俗易懂,之前看了四人幫的設計模式,看一半就有一種痛不欲生的感覺,自己水平有限,看不懂,也就沒在勉強自己了。對於模式其實簡單...

Head First 之裝飾模式筆記

裝飾模式 給乙個類新增一些額外的職責,並且在新增這些額外的職責時不會控制該類的執行邏輯,也就是說動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比繼承更為靈活。組成部分 抽象構件 原始的功能介面 具體構件 具體的原始功能類 裝飾角色 持有具體構件類的物件,以便執行原有功能 具體裝飾 具體...