设计模式之行为型模式二

设计模式之行为型模式二

ID:40313386

大小:175.50 KB

页数:15页

时间:2019-07-30

设计模式之行为型模式二_第1页
设计模式之行为型模式二_第2页
设计模式之行为型模式二_第3页
设计模式之行为型模式二_第4页
设计模式之行为型模式二_第5页
资源描述:

《设计模式之行为型模式二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、软件英才网软件行业驰名招聘网站设计模式之行为型模式二来自何静媛的博客行为型模式:职责链模式  使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.        优点:  当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHandler对象负责处理它.  接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构.结果是职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引用,而不需要保持它所有的候选接收者

2、的引用.   在客户端可以随时地增加或修改处理一个请求的结构,增强了给对象指派职责的灵活性.有需要请联系我们软件英才网软件行业驰名招聘网站 职责链模式结构图:        没有职责链模式:如图     有需要请联系我们软件英才网软件行业驰名招聘网站这样的话我需要自己和公司的每一个层级都发生耦合关系。课本实例:申请加薪代码如下:[csharp] viewplaincopyprint?1.  //申请  2.class Request  3.{   4.    //申请类别  5.    private string reque

3、stType;  6.    public string RequestType  7.    {  8.        get { return requestType; }  9.        set { requestType = value; }  10.              11.    }  12.  13.    //申请内容  14.    private string requestContent;  15.    public string RequestContent  16.    {  17.

4、        get { return requestContent; }  18.        set { requestContent = value; }  19.  20.    }  21.    //数量  22.    private int number;  23.    public int Number  24.    {  25.        get { return number ; }  26.        set { number  = value; }  27.  28.    }  29

5、.}  30.  有需要请联系我们软件英才网软件行业驰名招聘网站1.abstract class Manager  2.{  3.    protected string name;  4.    //管理者的上级  5.    protected Manager superior;  6.  7.    public Manager(string name)  8.    {  9.        this.name = name;  10.    }  11.    //设置管理者的上级  12.    public vo

6、id SetSuperior(Manager superior)  13.    {  14.        this.superior = superior;  15.    }  16.    //申请请求  17.    abstract public void RequestApplications(Request request);  18.  19.}  20.  21.class CommonManager : Manager  22.{  23.    public CommonManager(string n

7、ame)  24.        : base(name)  25.    { }  26.    public override void RequestApplications(Request request)  27.    {  28.        if (request.RequestType == "请假" && request.Number <= 2)  29.        {  30.            Console.WriteLine("{0}:{1}数量{2}被批准", name, request

8、.RequestContent, request.Number);  31.        }  32.        else  33.        {  34.            if (superior != null)  35.                s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。