引言
在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜、挂件、外壳等。如果此时使用继承来实现的话,我们就需要定义无数的类,这样会导致“子类爆炸”的问题。为了解决这个问题,可以使用装饰者模式来动态地给一个对象添加额外的职责。
装饰者模式的详细介绍
定义
装饰者模式以对客户透明的方式动态地给一个对象附加上更多的职责,装饰者模式相比生成子类可以更灵活地增加功能。
具体实现
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _23DecoratorPatternDemo
{
/// <summary>
/// 手机抽象类,即装饰者模式中的抽象组件类
/// </summary>
public abstract class Phone
{
public abstract void Print();
}
/// <summary>
/// 手机,即装饰者模式中的具体组件类
/// </summary>
public class ApplePhone : Phone
{
public override void Print()
{
Console.WriteLine("开始执行具体的对象————苹果手机");
}
}
/// <summary>
/// 装饰抽象类,要让装饰完全取代抽象组件,必