作者
eclipse
可能你已經在用Decorator模式了
但是跟所有其他模式一樣
知道你為什麼使用它
學習使用它跟別的開發者溝通是很重要的
Decorator模式
即Wrapper模式
其強制控制作用是在不改動一個類的代碼或者不破壞一個類的接口的情況下為該類添加功能
當你想一個類具有更多功能的時候
使用Decorator模式意味著增加功能後的版本不一定要通過擴展類來重用現有功能
假定有一個叫做Action的接口有兩個方法
act
()
act
()
這個接口有一個具體版本ConcreteAction
Decorator將會是一個實現Action的類
其構造器有一個Action(通常是ConcreteAction)
所以代碼如下
public class ActionDecorator implements Action {
private Action action;
public ActionDecorator(Action action) {
this
action = action;
}
public void act
() {
action
act
();
}
public void act
() {
// do nothing
}
}
使用Decorator比使用繼承產生更少的類
所以其代碼比較簡單
但是它通常產生更多的對象
將導致調試難度增加
尤其是因為它增加了靈活度
可能會引入新的錯誤
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27629.html