抽象處理者(handler)角色:定義出乙個處理請求的介面。如果需要,介面可以定義出乙個方法,以設定和返回對下家的引用。這個角色通常由乙個抽象類或介面實現。具體處理者(concretehandler)角色:具體處理者接到請求後,可以選擇將請求處理掉,或者將請求傳給下家。由於具體處理者持有對下家的引用,因此,如果需要,具體處理者可以訪問下家。
請求者和接收者鬆散耦合動態組合職責
產生很多細粒度物件不一定能被處理
需要提供預設處理
uml圖:**實現:package 公費聚餐;
public abstract class handler
public handler gethandler()
public abstract void request(int money) throws exception;
}package 公費聚餐;
public class generalmanager extends handler else }}
package 公費聚餐;
public class departmanger extends handlerelse
}}package 公費聚餐;
public class projectmanager extends handler else }}
package 公費聚餐;
public class client
}
uml圖:**實現:the end;package 小菜漲工資;
public class request
public void settype(string type)
public integer getnumber()
public void setnumber(integer number)
}package 小菜漲工資;
public abstract class manager
public manager getmanager()
public abstract void request(request request); }
package 小菜漲工資;
public class majormanager extends manager else }}
package 小菜漲工資;
public class generalmanager extends manager else if(request.gettype().equals("漲工資")&&request.getnumber()<=200)else }}
package 小菜漲工資;
public class connonmanger extends manager else }}
package 小菜漲工資;
public class client
}
設計模式 職責鏈模式
2008年08月17日 星期日 下午 04 28 using system using system.collections.generic using system.text public officer officer o public abstract void deal action a c...
設計模式 職責鏈模式
1 request.h ifndef request h define request h include include using namespace std class request 請求類定義 endif request h 2 manager.h ifndef manager h def...
設計模式 職責鏈模式
今天跟大家分享下設計模式中的職責鏈模式。不知道大家在學習職責鏈模式的時候是否感覺困難。我剛開始學的時候就被整暈了。呵呵,進入正題。職責鏈模式是物件行為型模式中比較有特點的設計模式了,的確有意思,它可以像資料結構中煉表一樣傳遞。其實生活中好多的行為方式都體現了職責鏈模式,我們初期學習者可以把職責鏈模式...