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 Security
112 {
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 Program
127 {
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 }
转载于:https://www.cnblogs.com/CheeseZH/archive/2012/05/18/2508401.html
转载请注明原文地址: https://win8.8miu.com/read-1494532.html