本文共 3587 字,大约阅读时间需要 11 分钟。
1 /* 2 * 一个保安系统的,由录像机、电灯、红外线监控和警报器组成。保安系统的操作 3 * 人员需要经常将这些仪器启动和关闭。保安类需要用到所有的录像机(Camera)、 4 * 电灯(Light)、感应器(Sensor)和警报器(Alarm)对象,保安觉得使用不方便。应 5 * 用外观模式,用C#控制台应用程序改进该设计。 6 */ 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using System.Text; 11 12 namespace Facade 13 { 14 //照相机类 15 class Camera 16 { 17 public void Start() 18 { 19 Console.WriteLine("启动录像机。"); 20 } 21 public void Close() 22 { 23 Console.WriteLine("关闭录像机。"); 24 } 25 } 26 //灯光类 27 class Light 28 { 29 public void Start() 30 { 31 Console.WriteLine("启动灯光。"); 32 } 33 public void Close() 34 { 35 Console.WriteLine("关闭灯光。"); 36 } 37 } 38 //感应器类 39 class Sensor 40 { 41 public void Start() 42 { 43 Console.WriteLine("启动感应器。"); 44 } 45 public void Close() 46 { 47 Console.WriteLine("关闭感应器。"); 48 } 49 } 50 //警报器类 51 class Alarm 52 { 53 public void Start() 54 { 55 Console.WriteLine("启动警报器。"); 56 } 57 public void Close() 58 { 59 Console.WriteLine("关闭警报器。"); 60 } 61 } 62 //遥控器类 63 class RemoteControl 64 { 65 private Alarm alarm; 66 private Sensor sensor; 67 private Light light; 68 private Camera camera; 69 70 public RemoteControl() 71 { 72 alarm = new Alarm(); 73 sensor = new Sensor(); 74 light = new Light(); 75 camera = new Camera(); 76 } 77 public void StartCamera() 78 { 79 camera.Start(); 80 } 81 public void CloseCamera() 82 { 83 camera.Close(); 84 } 85 public void StartLight() 86 { 87 light.Start(); 88 } 89 public void CloseLight() 90 { 91 light.Close(); 92 } 93 public void StartSensor() 94 { 95 sensor.Start(); 96 } 97 public void CloseSensor() 98 { 99 sensor.Close();100 }101 public void StartAlarm()102 {103 alarm.Start();104 }105 public void CloseAlarm()106 {107 alarm.Close();108 }109 }110 //保安类111 class Security112 {113 private string name;114 private RemoteControl rc;115 public Security(string name,RemoteControl rc)116 {117 this.name = name;118 this.rc = rc;119 Console.WriteLine("{0}值班中。他手里拿了一个遥控器。\n", name);120 }121 public RemoteControl Control()122 {123 return this.rc;124 }125 }126 class Program127 {128 static void Main(string[] args)129 {130 Security baoan = new Security("包鞍",new RemoteControl());131 132 baoan.Control().StartAlarm();133 baoan.Control().StartCamera();134 baoan.Control().StartLight();135 baoan.Control().StartSensor();136 137 Console.WriteLine("");138 baoan.Control().CloseAlarm();139 baoan.Control().CloseCamera();140 baoan.Control().CloseLight();141 baoan.Control().CloseSensor();142 }143 }144 }
本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/05/18/2508401.html,如需转载请自行联系原作者