标签:
uml类图
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Decorate 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Mobilephone apple = new Apple(); 14 char i; bool s = true; 15 Console.WriteLine("--------------------------------------"); 16 Console.WriteLine(" ALL function:"); 17 Console.WriteLine(" Bluetooth----1."); 18 Console.WriteLine(" GPS----2."); 19 Console.WriteLine(" Camera----3."); 20 Console.WriteLine(" End----0."); 21 Console.WriteLine("Please input the choice:"); 22 while (s) 23 { 24 25 i = (char)Console.Read(); 26 if (i == ‘0‘) { s=false; } 27 if (i == ‘1‘) 28 { 29 Bluetooth bluetooth = new Bluetooth(); 30 bluetooth.Decorate(apple); 31 bluetooth.SendMessage(); 32 bluetooth.Call(); 33 } 34 if (i == ‘2‘) 35 { 36 GPS gps = new GPS(); 37 gps.Decorate(apple); 38 gps.SendMessage(); 39 gps.Call(); 40 } 41 if (i == ‘3‘) 42 { 43 Camera camera = new Camera(); 44 camera.Decorate(apple); 45 camera.SendMessage(); 46 camera.Call(); 47 } 48 } 49 } 50 } 51 } 52 53 abstract class Mobilephone 54 { 55 public Mobilephone() { } 56 public abstract void SendMessage(); 57 public abstract void Call(); 58 } 59 class Apple:Mobilephone 60 { 61 public Apple():base() 62 { } 63 public override void SendMessage() 64 { 65 Console.WriteLine("Apple Sending Message"); 66 } 67 68 public override void Call() 69 { 70 Console.WriteLine("Apple Calling"); 71 } 72 } 73 74 class Mi : Mobilephone 75 { 76 public Mi() 77 : base() 78 { } 79 public override void SendMessage() 80 { 81 Console.WriteLine("Mi Sending Message"); 82 } 83 84 public override void Call() 85 { 86 Console.WriteLine("Mi Calling"); 87 } 88 } 89 90 abstract class Function:Mobilephone 91 { 92 private Mobilephone _mobilephone; 93 public Function() : base() { } 94 public void Decorate(Mobilephone mobilephone) 95 { 96 _mobilephone = mobilephone; 97 } 98 public override void SendMessage() 99 { 100 _mobilephone.SendMessage(); 101 } 102 103 public override void Call() 104 { 105 _mobilephone.Call(); 106 } 107 } 108 class Bluetooth:Function 109 { 110 public Bluetooth() : base() { } 111 public override void SendMessage() 112 { 113 base.SendMessage(); 114 AddBluetooth(); 115 Connect(); 116 } 117 public override void Call() 118 { 119 base.Call(); 120 AddBluetooth(); 121 Connect(); 122 } 123 public void AddBluetooth() 124 { 125 Console.WriteLine("Bluetooth"); 126 } 127 128 public void Connect() 129 { 130 Console.WriteLine("Connecting"); 131 } 132 } 133 class GPS : Function 134 { 135 public GPS() : base() { } 136 public override void SendMessage() 137 { 138 base.SendMessage(); 139 AddGPS(); 140 location(); 141 } 142 public override void Call() 143 { 144 base.Call(); 145 AddGPS(); 146 location(); 147 } 148 public void AddGPS() 149 { 150 Console.WriteLine("GPS"); 151 } 152 153 public void location() 154 { 155 Console.WriteLine("Locating"); 156 } 157 } 158 class Camera : Function 159 { 160 public Camera() : base() { } 161 public override void SendMessage() 162 { 163 base.SendMessage(); 164 AddCamera(); 165 Came(); 166 } 167 public override void Call() 168 { 169 base.Call(); 170 AddCamera(); 171 Came(); 172 } 173 public void AddCamera() 174 { 175 Console.WriteLine("Camera"); 176 } 177 178 public void Came() 179 { 180 Console.WriteLine("Camera is on"); 181 } 182 }
标签:
原文地址:http://www.cnblogs.com/123456yao/p/5097110.html