C# 设计模式巩固笔记
2017-02-23 23:39
330 查看
前言
多读书、多学习介绍-适配器模式
定义:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。实现
这里有大家生活中常见的例子,作为一名程序员。看到适配器我首先想到的就是我们常用的笔记本的电源适配器。大家都知道笔记本是无法直接接入220V的电压的,一般笔记本支持的就是16 - 22V的电压,这个就是电源适配器的输出的电压。下面就通过适配器模式来实现这个过程。
1.定义一个220V电压的接口,由我们的插座来实现:
/// <summary> /// 220V电源插口 /// </summary> public interface ISoketPowerWith200V { /// <summary> /// 输出电压 /// </summary> /// <returns></returns> int OutPutVoltage(); } /// <summary> /// 电源 /// </summary> public class Socket : ISoketPowerWith200V { /// <summary> /// 输出电压 /// </summary> /// <returns></returns> public int OutPutVoltage() { return 220; } }
2.需要一个输出电压的接口:
/// <summary> /// 20V电压插口 /// </summary> public interface ISoketPowerWith20V { /// <summary> /// 输出电压 /// </summary> /// <returns></returns> int OutPutVoltage(); }
3.看下笔记本类,笔记本提供了20V电压的插口:
/// <summary> /// 笔记本电脑 /// </summary> public class LapTop { /// <summary> /// 构造函数 /// </summary> public LapTop() { } /// <summary> /// 接入电源适配器 /// </summary> /// <param name="powerAdapter">电源适配器</param> public void SetPowerAdapter(ISoketPowerWith20V powerAdapter) { PowerAdapter = powerAdapter; Request20V(); } /// <summary> /// 电源适配器 - 输出电压 20V /// </summary> public ISoketPowerWith20V PowerAdapter { get; set; } /// <summary> /// 需要20V电压 /// </summary> public void Request20V() { int voltage = PowerAdapter.OutPutVoltage(); Console.WriteLine("开始检测输入电压是否正确..."); if (voltage == 20) Console.WriteLine("输入电压正确!"); else Console.WriteLine("输入电压错误!"); } }
4.这个20V的电源如何实现呢,下面就是我们的适配器出场了:
/// <summary> /// 电源适配器类 /// </summary> public class PowerAdapter : ISoketPowerWith20V { /// <summary> /// 220V插座 /// </summary> ISoketPowerWith200V _socket; public PowerAdapter() { } /// <summary> /// 接入电源 /// </summary> /// <param name="socket">插座</param> public void SetSocket(ISoketPowerWith200V socket) { this._socket = socket; } /// <summary> /// 输入电压 /// </summary> /// <returns></returns> public int OutPutVoltage() { int voltage = _socket.OutPutVoltage(); return Switch(voltage); } /// <summary> /// 转换电压 /// </summary> /// <param name="voltage">输入电压</param> /// <returns>输出电压</returns> private int Switch(int voltage) { Console.WriteLine("接入{0}V电压,开始转换...",voltage); Console.WriteLine("转换电压完成!"); return 20; } }
电源适配器接入220V电压,然后通过转换输出20V的电压。
5.最后看调用:
class Program { static void Main(string[] args) { //1.拿出笔记本 LapTop lapTop = new LapTop(); //2.拿出适配器 PowerAdapter adapter = new PowerAdapter(); //3.找到一个插头 Socket socket = new Socket(); //4.适配器接入电源 adapter.SetSocket(socket); //5.接入适配器 lapTop.SetPowerAdapter(adapter); Console.Read(); } }
结果:
欢迎批评指正,转载请注明出处 http://www.cnblogs.com/xinwang/p/6425189.html
相关文章推荐
- C# 设计模式巩固笔记
- C# 设计模式巩固笔记 - 适配器模式
- C# 设计模式巩固笔记
- C# 设计模式巩固笔记
- C# 设计模式巩固笔记
- C# 设计模式巩固笔记
- C# 设计模式巩固笔记 - 建造者模式
- C#设计模式-------笔记
- C#设计模式学习笔记-单例模式
- 《C# 设计模式》笔记: 第5章 继承
- C#设计模式学习笔记-单例模式
- C# 中的设计模式3:Abstract Factory(学习笔记)
- [学习笔记]c#中的委托、事件、Func、Predicate、Observer设计模式以及其他
- 《设计模式:基于C#的工程化实现及扩展》学习笔记--目录
- 《C# 设计模式》笔记: 第7章 C#中的数组、文件和异常
- C#设计模式学习笔记-单例模式
- C#面向对象设计模式纵横谈 学习笔记22 State模式(行为型模式)
- C#23种设计模式WebCast讲解笔记大全(25讲)
- C#设计模式学习笔记-单例模式
- C#设计模式学习笔记-单例模式