zoukankan      html  css  js  c++  java
  • 装饰模式(Decorator)

     1 /*
     2  *“喜羊羊逃命”游戏:喜羊羊被灰太狼追,喜羊羊最多5条命,灰太狼每咬到喜羊羊一
     3  * 次,喜羊羊就要少一条命。在逃的过程中喜羊羊可以吃到三种苹果,吃“红苹果”可
     4  * 以给喜羊羊加上保护罩,吃“绿苹果”可以加快喜羊羊奔跑速度,吃“黄苹果”可以
     5  * 使喜羊羊趟着水跑。应用装饰模式,用C#控制台应用程序实现该设计。
     6  */
     7 using System;
     8 using System.Collections.Generic;
     9 using System.Linq;
    10 using System.Text;
    11 
    12 namespace Decorator
    13 {
    14     class XiYangYang
    15     {
    16         public virtual void Show()
    17         {
    18         }
    19     }
    20     class Buff : XiYangYang
    21     {
    22         protected XiYangYang xyy;
    23         public void AddBuff(XiYangYang xyy)
    24         {
    25             this.xyy = xyy;
    26         }
    27         public override void Show()
    28         {
    29             if (xyy != null)
    30             {
    31                 xyy.Show();
    32             }
    33         }
    34     }
    35     class ProtectBuff : Buff
    36     {
    37         public override void Show()
    38         {
    39             Console.WriteLine("喜羊羊吃了一个'红苹果',获得了保护罩!");
    40             base.Show();
    41         }
    42     }
    43     class FastBuff : Buff
    44     {
    45         public override void Show()
    46         {
    47             Console.WriteLine("喜羊羊吃了一个'绿苹果',进入加速状态!");
    48             base.Show();
    49         }
    50     }
    51     class SwimBuff : Buff
    52     {
    53         public override void Show()
    54         {
    55             Console.WriteLine("喜羊羊吃了一个'黄苹果',它可以游泳了!");
    56             base.Show();
    57         }
    58     }
    59     class Program
    60     {
    61         static void Main(string[] args)
    62         {
    63             XiYangYang xyy = new XiYangYang();
    64             Console.WriteLine("游戏开始了!");
    65 
    66             ProtectBuff pb = new ProtectBuff();
    67             FastBuff fb = new FastBuff();
    68             SwimBuff sb = new SwimBuff();
    69 
    70             pb.AddBuff(xyy);
    71             fb.AddBuff(pb);
    72             sb.AddBuff(fb);
    73             sb.Show();
    74 
    75             Console.WriteLine("游戏结束了!");
    76         }
    77     }
    78 }
    字节跳动内推

    找我内推: 字节跳动各种岗位
    作者: ZH奶酪(张贺)
    邮箱: cheesezh@qq.com
    出处: http://www.cnblogs.com/CheeseZH/
    * 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    dotnetcharting 生成柱状图,饼图等统计图
    asp.net 前后台相互调用
    SQL基础和高级(语法格式)总结二
    自己动手JQuery插件开发
    SQL基础之创建数据库,表,架构
    SQL基础和高级(语法格式)总结一
    ado.net总结
    [Nescafé 26] 小猫爬山&&售货员的难题&&区间众数(随机化大法好)
    POJ2774 后缀自动机&后缀数组
    【方向学习】单片机
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/2505579.html
Copyright © 2011-2022 走看看