设计模式之结构型模式二

设计模式之结构型模式二

ID:6676531

大小:108.00 KB

页数:11页

时间:2018-01-22

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

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

1、软件英才网软件行业驰名招聘网站设计模式之结构型模式二结构型模式: 装饰模式:  动态地给一个对象添加一些额外的职责。优点:  把类中的装饰功能从类中搬移出去,这样可以简化原有的类。有效地把类的核心功能和装饰功能区分开了。  已经开发完毕的对象,后期由于业务需要,对旧的对象需要扩展特别多的功能,这时候使用给对象动态地添加新的状态或者行为(即装饰模式)方法,而不是使用子类静态继承  装饰模式,给一个对象动态添加额外职责,这些职责需要由用户决定加入的方式和时机。装饰模式提供了“即插即用”的方式,在运行期间决定何时增加何种功能。就增加功能来说,装饰模式比生成子类更加灵活。 方法:1,

2、定义一个对象接口Component2,定义一个具体的对象ConcreteComponent有需要请联系我们软件英才网软件行业驰名招聘网站3,定义一个装饰类Decorator4,定义装饰类的具体对象ConcreteDecoratorA等 给ConcreteComponent对象添加职责举例说明:   例如:一幅画,可以直接挂到墙上,也可以加上框架和镶上玻璃后,再挂到墙上。装饰模式结构图:     代码如下:[csharp] viewplaincopyprint?1.//Component 类  有需要请联系我们软件英才网软件行业驰名招聘网站1. abstract class C

3、omponent  2. {  3.     public abstract void Operation();  4.  5. }  6. //ConcreteComponent 类  7. class ConcreteComponent : Component  8. {  9.     public override void Operation()  10.     {  11.         Console.WriteLine("具体对象的操作");  12.  13.     }  14. }  15. //Decorator 类  16. abstract c

4、lass Decorator : Component  17. {  18.     protected Component component;  19.     public void SetComponent(Component component)  20.     {  21.         this.component = component;  22.  23.     }  24.     public override void Operation()  25.     {  26.         if (component != null)  27. 

5、        {  28.             component.Operation();  29.  30.         }  31.     }  32.  33. }  34. class ConcreteDecoratorA : Decorator  35. {  36.     private string addedState;  37.     public override void Operation()  38.     {   39.         base .Operation();  40.         addedState = "

6、new state";  41.         Console.WriteLine("具体装饰对象A的操作");  42.  43.     }  有需要请联系我们软件英才网软件行业驰名招聘网站1. }  2. class ConcreateDecoratorB:Decorator  3. {  4.     public override void Operation()  5.     {  6.         base.Operation();  7.         AddedBehavior();  8.         Console.WriteLine("具

7、体装饰对象B的操作");  9.  10.     }  11.     private void AddedBehavior()  12.     {   13.     }  14. }  外观模式  为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子类系统更加容易使用。  外观类,它需要了解所有的子系统的方法和属性,进行组合,以备外界调用(将子类的方法和属性组合到外观类)举例说明:   例如:我们拨打10086,可以办理,彩铃,手机报,全时通等业务(子对象),而1

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

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

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