public override void Operation() { base.Operation(); strB = "在公司"; ConcreteDecoratorA a = (ConcreteDecoratorA)component; a.component.str = strB + a.component.str; str = a.component.str; Console.WriteLine(str); }
static void Main(string[] arg) { ConcreteComponent cc = new ConcreteComponent(); ConcreteDecoratorA cda = new ConcreteDecoratorA(); ConcreteDecoratorB cdb = new ConcreteDecoratorB(); cda.SetComponent(cc); cdb.SetComponent(cda); cdb.Operation(); //Console.WriteLine(cdb.str); }