您的位置:首页 > 其它

装饰模式

2018-02-03 12:21 120 查看

装饰者模式:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更灵活!

当系统需要更新内容的时候,可能需要向旧的类中添加新的方法,这些新加的代码通常装饰了原有类的核心职责或行为。再主类中添加新的字段,新的方法和新的逻辑,从而增加了主类的复杂度。而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要。装饰者模式可以将每个需要装饰的功能单独的放在一个类中,并让这个类包装它所需要装饰的对象。当需要执行特殊行为时,客户端代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Decorator
{
class Program
{
static void Main(string[] args)
{
ConcreteComponent c = new ConcreteComponent();
ConcreateDecoratorA d1 = new ConcreateDecoratorA();
ConcreateDecoratorB d2 = new ConcreateDecoratorB();
d1.SetComponent(c);
d2.SetComponent(d1);
d2.Operation();//concreteComponent中的Operation的事做了。D1中的方法也运行了。D2中的方法也做了!
Console.ReadKey();
}
}
}
控制台代码

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: