我對(duì)decorate模式的理解:
1-首先要有一個(gè)Interface,提供一個(gè)通用的方法;
2-其次有n多個(gè)class來實(shí)現(xiàn)這個(gè)接口中的方法,這些實(shí)現(xiàn)方法在功能上應(yīng)該是并列的,但不是必須的,從而可以根據(jù)需要decorate那個(gè)需要被修飾的初始對(duì)象。
3-最后這些class都有一個(gè)帶有Interface作為參數(shù)的構(gòu)造方法和一個(gè)Interface的屬性,這樣在構(gòu)造的時(shí)候就可以取得那個(gè)需要修飾的對(duì)象的實(shí)例,然后在實(shí)現(xiàn)Interface的方法里面,首先實(shí)現(xiàn)修飾對(duì)象實(shí)例的修飾方法,然后再進(jìn)行自己的decorate方法。
根據(jù)這個(gè)想法來畫一張畫:






























































































再寫段測(cè)試畫畫的代碼:











測(cè)試結(jié)果:






?最后有個(gè)問題:為什么不直接定義一個(gè)畫畫的類,然后把這些該怎么畫的事情分別通過方法來實(shí)現(xiàn)呢? 那么什么情況下使用decorate模式更為合適呢?