一个Adapter模式的小例子

画圆和长方形的方法是Area(),目标方法为GetArea(),所以要适配一下。

//目标接口:
    interface ITarget
    {
        void getArea();
    }
 

//抽象图形
  public abstract class Shape
    {
      public abstract void Area();
    }
 


//画圆

namespace Adapter
{
   public class Circle : Shape
    {
        private double r;

        public double R
        {
            get { return r; }
            set { r = value; }
        }
        public Circle(double r)
        {
            this.R = r;
        }
       public override void Area()
       {
           Console.WriteLine("圆面积为{0}", 3.14 * R * R);
       }
    }
}
 

//画长方形

 public class Rectangle : Shape
    {
        private double a, b;

        public double B
        {
            get { return b; }
            set { b = value; }
        }

        public double A
        {
            get { return a; }
            set { a = value; }
        }
        public Rectangle(double a,double b)
        {
            this.A = a;
            this.B = b;
        }
       public override void Area()
       {
           Console.WriteLine("长方形面积为{0}", A*B);
       }
    }

 

//类适配器

   class AdapterDevice:ITarget
    {
        Shape _shape;
        public AdapterDevice(Shape shape)
        {
            this._shape = shape;
        }
        public void getArea()
        {
            _shape.Area();
        }
    }

//客户端

class Program
    {
        static void Main(string[] args)
        {
            ITarget adapter1 = new AdapterDevice(new Circle(2));
            ITarget adapter2 = new AdapterDevice(new Rectangle(2,4));
            adapter1.getArea();
            adapter2.getArea();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值