Loading

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;  
    }  
}  

 

posted @ 2017-04-10 15:42  guwei4037  阅读(271)  评论(0编辑  收藏  举报