装饰模式
using System;
class Program
{
static void Main(string[] args)
{
IPerson person = new BlackPerson("andre");
Decorator decorator = new Decorator2019(person);
decorator = new Decorator2020(decorator);
decorator.ShowInfo();
Console.ReadKey();
}
public interface IPerson
{
void ShowInfo();
}
public class BlackPerson : IPerson
{
private string name;
public BlackPerson(string name)
{
this.name = name;
}
public void ShowInfo()
{
Console.WriteLine(name);
}
}
public abstract class Decorator : IPerson
{
public IPerson person;
public Decorator(IPerson person)
{
this.person = person;
}
public abstract void ShowInfo();
}
public class Decorator2019 : Decorator
{
public Decorator2019(IPerson person) : base(person)
{
}
public override void ShowInfo()
{
person.ShowInfo();
Console.WriteLine("2019年我完成了c#的学习");
}
}
public class Decorator2020 : Decorator
{
public Decorator2020(IPerson person) : base(person)
{
}
public override void ShowInfo()
{
person.ShowInfo();
Console.WriteLine("2020年完成了.net的学习");
}
}
}

浙公网安备 33010602011771号