适配器模式
最近重读设计模式,理解更上一层楼。
为以便日后翻阅之需特坚持写博客,记录技术点滴,本设计模式系列源码均参考 http://c.biancheng.net/view/1317.html java语言版本的23种设计模式,
同时方便没有java基础的同学参阅故翻译成C#系列。
java系列对设计模式的应用说明,模式的总结均有详细说明,此系列文章仅仅作翻阅之用,如需要详细理解请参阅上述链接。
//适配器模式(Adapter)包含以下主要角色。 //目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。 //适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。 //适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。 /// <summary> /// 适配者模式原型 /// </summary> interface Target { void Request(); } public class Adaptee { public void SpecificRequest() { Console.WriteLine("适配者中的业务代码被调用!"); } } public class ClassAdapter : Adaptee, Target { public void Request() { SpecificRequest(); } } public class ObjectAdapter : Target { private Adaptee adaptee; public ObjectAdapter(Adaptee adaptee) { this.adaptee = adaptee; } public void Request() { adaptee.SpecificRequest(); } } #region 适配器模式示例 interface Motor { void Drive(); } /// <summary> /// 适配者1 电能发动机 /// </summary> class ElectricMotor { public void ElectricDrive() { Console.WriteLine("电能发动机驱动汽车!"); } } /// <summary> /// 适配者2 光能发动机 /// </summary> class OptiocalMotor { public void OptiocalDrive() { Console.WriteLine("光能发动机驱动汽车!"); } } /// <summary> /// 电能适配器 /// </summary> class ElectricAdapter : Motor { private ElectricMotor emotor; public ElectricAdapter() { emotor = new ElectricMotor(); } public void Drive() { emotor.ElectricDrive(); } } /// <summary> /// 光能适配器 /// </summary> class OpticalAdapter : Motor { private OptiocalMotor motor; public OpticalAdapter() { motor = new OptiocalMotor(); } public void Drive() { motor.OptiocalDrive(); } } #endregion 适配器模式示例
浙公网安备 33010602011771号