class Program
{
static void Main(string[] args)
{
Person p = new Person("小朱");
Shoe shoe = new Shoe();
Clothe clothe = new Clothe();
Cap cap = new Cap();
shoe.Decorate(p);
clothe.Decorate(shoe);
cap.Decorate(clothe);
cap.Show();
ConsoleKey key;
do
{
key = Console.ReadKey(true).Key;
} while (key != ConsoleKey.Q);
}
}
class Person
{
public Person()
{
}
private string name;
public Person(string name)
{
this.name = name;
}
public virtual void Show()
{
Console.WriteLine("{0}没穿衣服", name);
}
}
class Decorator : Person
{
private Person component;
public void Decorate(Person component)
{
this.component = component;
}
public override void Show()
{
if (component != null)
{
component.Show();
}
}
}
class Shoe : Decorator
{
public override void Show()
{
base.Show();
Console.WriteLine("穿鞋子了!");
}
}
class Clothe : Decorator
{
public override void Show()
{
base.Show();
Console.WriteLine("穿衣服了!");
}
}
class Cap : Decorator
{
public override void Show()
{
base.Show();
Console.WriteLine("穿帽子了!");
}
}
C#设计模式学习小结之二 装饰模式
最新推荐文章于 2023-10-01 08:13:35 发布