初嚐設計模式 1 裝飾模式

2021-07-30 08:16:18 字數 1015 閱讀 3536

裝飾模式(decorator)

動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。

首先有那麼乙個裸睡的人,早上起來準備穿衣服了,如下,show方法顯示他穿衣服的步驟

package com.wxl.design.decorator;

/** * 個人

*/public abstract class person

為了更好的穿衣服,搞了乙個穿衣服器(裝飾器)

package com.wxl.design.decorator;

/** * 裝飾器

*/public class costume extends person

}public void setcostume(costume costume)

}

裝飾器覆蓋show方法但是卻不掉用自身而是呼叫被裝飾物件的show方法,接下來就可以開始穿了

package com.wxl.design.decorator;

public class costumea extends costume

/*** 獨特的方法

*/private void wearsuit()

}

他先穿內衣褲,然後穿襪子

package com.wxl.design.decorator;

public class costumeb extends costume

/*** 獨特的方法

*/private void wearequipment()

}

最後

package com.wxl.design.decorator;

public class main

}

執行結果:

小明今天穿了:

西服西褲

雨傘袋子

設計模式 裝飾者模式 1

一 用headfirst 設計模式 咖啡例子 1.裝飾者模式 1.動態地將責任附加到物件上 1.1 以飲料為主體,然後在執行時以調料來 裝飾 飲料 2.裝飾者與被裝飾者間必須要有共同超類 2.1 並非用繼承獲得行為,而是組合物件而來,並且由執行時決定 3.通常裝飾者模式採用抽象類 4.利用例項變數 ...

android 拋棄Mvc ,初嚐 Mvp 模式

前言 最近專案開始用mvp模式進行開發,為什麼不用mvc?你懂得。經過幾個版本迭代,邏輯已經被巢狀的面目全非,無法下手。下面簡單介紹,畢竟網上已有好多分享!隨著ui建立技術的功能日益增強,ui層也履行著越來越多的職責。為了更好地細分 檢視 view 與模型 model 的功能,讓view專注於處理資...

研磨設計模式之裝飾模式 1

考慮這樣乙個實際應用 就是如何實現靈活的獎金計算。獎金計算是相對複雜的功能,尤其是對於業務部門的獎金計算方式,是非常複雜的,除了業務功能複雜外,另外乙個麻煩之處是計算方式還經常需要變動,因為業務部門經常通過調整獎金的計算方式來激勵士氣。先從業務上看看現有的獎金計算方式的複雜性 看了上面獎金計算的問題...