装饰模式(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奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/05/16/2505579.html,如需转载请自行联系原作者

相关文章
|
6月前
|
设计模式
设计模式13 - 装饰模式【Decorator Pattern】
设计模式13 - 装饰模式【Decorator Pattern】
14 0
|
11月前
|
设计模式 Java
Java设计模式-装饰器模式(Decorator)
Java设计模式-装饰器模式(Decorator)
结构型模式 - 装饰器模式(Decorator Pattern)
结构型模式 - 装饰器模式(Decorator Pattern)
|
设计模式
装饰模式(Decorator)
装饰模式(Decorator)
|
设计模式 自动驾驶
装饰器模式Decorator
煎饼果子装饰器&汽车装饰器
526 3
装饰器模式Decorator
|
设计模式 缓存 Java
结构型-Decorator
装饰器模式主要解决继承关系过于复杂的问题,通过组合来替代继承。它主要的作用是给原始类添加增强功能。这也是判断是否该用装饰器模式的一个重要的依据。除此之外,装饰器模式还有一个特点,那就是可以对原始类嵌套使用多个装饰器。为了满足这个应用场景,在设计的时候,装饰器类需要跟原始类继承相同的抽象类或者接口。
82 0
|
设计模式 uml
设计模式——装饰模式(Decorator)
设计模式——装饰模式(Decorator)
138 0
设计模式——装饰模式(Decorator)
|
设计模式 Java
Java设计模式——装饰模式(Decorator Pattern)
Java设计模式——装饰模式(Decorator Pattern)
171 0
Java设计模式——装饰模式(Decorator Pattern)
|
设计模式 Java
【Java设计模式系列】装饰器模式(Decorator Pattern)(上)
【Java设计模式系列】装饰器模式(Decorator Pattern)
120 0
【Java设计模式系列】装饰器模式(Decorator Pattern)(上)
|
设计模式 Java 数据库连接
【Java设计模式系列】装饰器模式(Decorator Pattern)(下)
【Java设计模式系列】装饰器模式(Decorator Pattern)
106 0
【Java设计模式系列】装饰器模式(Decorator Pattern)(下)

热门文章

最新文章