当前位置:网站首页 > 技术博客 > 正文

装饰模式的定义



/// <summary> /// 手机抽象类,即装饰者模式中的抽象组件类 /// </summary> public abstract class Phone { public abstract void Print(); } /// <summary> /// 苹果手机,即装饰着模式中的具体组件类 /// </summary> public class ApplePhone:Phone { /// <summary> /// 重写基类方法 /// </summary> public override void Print() { Console.WriteLine("开始执行具体的对象——苹果手机"); } } /// <summary> /// 装饰抽象类,要让装饰完全取代抽象组件,所以必须继承自Photo /// </summary> public abstract class Decorator:Phone { private Phone phone; public Decorator(Phone p) { this.phone = p; } public override void Print() { if (phone != null) { phone.Print(); } } } /// <summary> /// 贴膜,即具体装饰者 /// </summary> public class Sticker : Decorator { public Sticker(Phone p) : base(p) { } public override void Print() { base.Print(); // 添加新的行为  AddSticker(); } /// <summary> /// 新的行为方法 /// </summary> public void AddSticker() { Console.WriteLine("现在苹果手机有贴膜了"); } } /// <summary> /// 手机挂件 /// </summary> public class Accessories : Decorator { public Accessories(Phone p) : base(p) { } public override void Print() { base.Print(); // 添加新的行为  AddAccessories(); } /// <summary> /// 新的行为方法 /// </summary> public void AddAccessories() { Console.WriteLine("现在苹果手机有漂亮的挂件了"); } }

  • 上一篇: jdk1.8是jdk8.0吗
  • 下一篇: 尺度空间.apk
  • 版权声明


    相关文章:

  • jdk1.8是jdk8.0吗2025-04-14 07:01:03
  • 王码五笔86版 win102025-04-14 07:01:03
  • 电脑键盘功能介绍图解2025-04-14 07:01:03
  • 程序员去哪接私活2025-04-14 07:01:03
  • 计算机操作系统的发展历程照片2025-04-14 07:01:03
  • 尺度空间.apk2025-04-14 07:01:03
  • 主流自动化测试工具2025-04-14 07:01:03
  • 背包问题贪心算法流程图2025-04-14 07:01:03
  • 建模优化算法2025-04-14 07:01:03
  • 双磁盘双系统安装ubuntu2025-04-14 07:01:03