易采站长站为您分析C#设计模式编程中的装饰者模式,同时也谈到了其在.NET框架中的应用,需要的朋友可以参考下
装饰者模式定义:不通过派生类增改类属性动作,而是通过模式设计动态的达到这种效果,而且比继承更方便灵活减少程序的复杂性。
举例
汪峰打造冠军团队。
首先团队类为空,经过汪峰不断的努力,为团队争取学员,也为团队队员打造合适的平台,让其发挥。
团队不断的变强,变完整,是由装饰者,根据不同的需求,给基类进行增改,一致最后赢得你的赞同,满足你的需求。
实现装配器模式的类图:
战队组建代码
//汪峰战队
abstract class WangFengTeam
{
//执行策划命令
abstract public void Acrion();
}
//学员
class Student : WangFengTeam
{
// Methods
override public void Acrion()
{
Console.WriteLine("汪峰团队学员情况:");
}
}
// 战队总策划
abstract class Direct : WangFengTeam
{
//汪峰战队
protected WangFengTeam team;
// 策划活动
public void SetComponent(WangFengTeam team)
{
this.team = team;
}
//执行策划
override public void Acrion()
{
if (team != null)
{
team.Acrion();
}
}
}
//男孩唱狂放型的,构建一个组合。
class BoyTeam : Direct
{
// 组合名称
public string teamName= "锋利的Jquery";
//具体策划
override public void Acrion()
{
base.Acrion();
Console.WriteLine("我是汪峰团队,狂放型的。");
}
}
//女孩唱婉约型的,来个模特表演
class GrilTeam : Direct
{
//具体策划
override public void Acrion()
{
base.Acrion();
Console.WriteLine("我是汪峰团队,婉约型的。");
//模特表演
show();
}
public void show()
{
Console.WriteLine("婉约型,走秀");
}
}
客户端代码:
public static void Main()
{
Student team = new Student();
BoyTeam boy = new BoyTeam();
GrilTeam girl = new GrilTeam();
//团队男孩装饰
boy.SetComponent(team);
//团队女孩装饰
girl.SetComponent(boy);
girl.Acrion();
Console.Read();
}











