23种设计模式之适配器模式(Adapter)

23种设计模式之适配器模式(Adapter)

 

适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在类适配器模式中,通过使用一个具体类将适配者适配到目标接口中;在对象适配器模式中,一个适配器可以将多个不同的适配者适配到同一个目标。

 

/// <summary> /// 圆形类 /// </summary> public class Circle : Shape { private XXCircle pcx = new XXCircle();//实例化XXCircle对象 public void Display() { pcx.DisplayIt();//让XXCircle做实际工作 } } /// <summary> /// 线性 /// </summary> public class Line : Shape { public void Display() { //program code } } /// <summary> /// 面积 /// </summary> public class Square : Shape { public void Display() { //program code } }

 

/// <summary> /// 显示形状接口 /// </summary> public interface Shape { void Display(); } /// <summary> /// 具体实际工作的类 /// </summary> public class XXCircle { /// <summary> /// 实际显示 /// </summary> public void DisplayIt() { Console.WriteLine(this.GetType().Name + ":我来显示啦!"); } }

 

/// <summary> /// 简单工厂类 /// </summary> public class Factory { /// <summary> /// 获取形状对象 /// </summary> /// <param name="type">类别</param> /// <returns>形状对象</returns> public Shape GetShapeInstance(int type) { switch (type) { case 1: return new Line();//线性 case 2: return new Square();//面积 case 3: return new Circle();//圆形 default: return null;//空 } } }

 

class Program { static void Main(string[] args) { //适配器模式 int type = 3; Factory factory = new Factory(); Shape s; s = factory.GetShapeInstance(type); if (s == null) { Console.WriteLine("Error get the instance!"); return; } s.Display(); return; } }

 

23种设计模式之适配器模式(Adapter)

上一篇:H5 web workers


下一篇:前端3+1(Day2)