浏览代码

适配器模式

shengjie_yan 8 年之前
父节点
当前提交
7e0046dd49
共有 3 个文件被更改,包括 23 次插入3 次删除
  1. 10 2
      AdapterPattern/IChargingLine.cs
  2. 5 1
      AdapterPattern/Program.cs
  3. 8 0
      DesignPattern.sln

+ 10 - 2
AdapterPattern/IChargingLine.cs

@@ -43,6 +43,7 @@ namespace AdapterPattern
 
     /// <summary>
     /// 苹果充电线适配器
+    /// 类适配器模式
     /// </summary>
     public class USBlightingLineAdapter : USBLine, IChargingLine
     {
@@ -55,13 +56,20 @@ namespace AdapterPattern
 
     /// <summary>
     /// 小米5充电线适配器
+    /// 对象适配器模式
     /// </summary>
-    public class USBTypecLineAdapter: USBLine,IChargingLine
+    public class USBTypecLineAdapter: IChargingLine
     {
+        private readonly USBLine _usbLine;
+        public USBTypecLineAdapter(USBLine usbLine)
+        {
+            this._usbLine = usbLine;
+        }
+
         public void Charging()
         {
             Console.WriteLine("对USB-TypeC端口的数据线进行适配!");
-            base.Charge();
+            this._usbLine.Charge();
         }
     }
 }

+ 5 - 1
AdapterPattern/Program.cs

@@ -24,14 +24,18 @@ namespace AdapterPattern
             Console.WriteLine("-------------------");
 
             //现在手里有一个未实现充电标准的充电线,通过适配器,为小米5设备充电
-            IChargingLine typeCLineAdapter = new USBTypecLineAdapter();
+            Console.WriteLine("对象适配器模式:");
+            IChargingLine typeCLineAdapter = new USBTypecLineAdapter(usbLine);
             typeCLineAdapter.Charging();
 
             Console.WriteLine("-------------------");
 
             //现在手里有一个未实现充电标准的充电线,通过适配器,为苹果设备充电
+            Console.WriteLine("类适配器模式:");
             IChargingLine lightingLineAdapter = new USBlightingLineAdapter();
             lightingLineAdapter.Charging();
+
+            Console.ReadLine();
         }
     }
 }

+ 8 - 0
DesignPattern.sln

@@ -73,6 +73,14 @@ Global
 		{AD530192-DE5C-469F-B2C0-9314CA5CA686}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{AD530192-DE5C-469F-B2C0-9314CA5CA686}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{AD530192-DE5C-469F-B2C0-9314CA5CA686}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3DF008E9-391E-4F49-ADFA-CAD0D1ABA592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3DF008E9-391E-4F49-ADFA-CAD0D1ABA592}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3DF008E9-391E-4F49-ADFA-CAD0D1ABA592}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3DF008E9-391E-4F49-ADFA-CAD0D1ABA592}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A0D5F127-471C-47AC-A9E0-F2BB72D2EF8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A0D5F127-471C-47AC-A9E0-F2BB72D2EF8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A0D5F127-471C-47AC-A9E0-F2BB72D2EF8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A0D5F127-471C-47AC-A9E0-F2BB72D2EF8F}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE