62,025
社区成员
发帖
与我相关
我的任务
分享
public abstract class Component
{
public abstract void sampleOperation();
}
/*
* 具体的一个门
*/
public class Door : Component
{
public override void sampleOperation()
{
Console.WriteLine("Build a door!");
}
}
/*
* 一个装饰抽象类,下面派生出一个用来装饰门的锁子和一个把手
*/
public abstract class Decorator : Component
{
private Component component;
public Decorator(Component _component)
{
this.component = _component;
}
public override void sampleOperation()
{
this.component.sampleOperation();
}
}
/*
* 用来装饰门的把手
*/
public class Knob : Decorator
{
public Knob(Component component)
: base(component)
{
}
public override void sampleOperation()
{
base.sampleOperation();
Console.WriteLine("Add an Knob(把手)");
}
}
public class DecoratorPattern
{
Component door123 = new Door();//创建一个扇门(向下转型)
Decorator knob = new Knob(door123);//报错:字段初始值设定项无法引用非静态字段、方法或属性“tlogin.comm”
public void f1()
{
knob.sampleOperation();
}
}
public class test
{
public static void Main()
{
DecoratorPattern k = new DecoratorPattern();
k.f1();
}
}