代理模式
1 顾名思义,就是有代理,中介存在。例如:喝醉了,不能开车(不想和不能改动目标是重点,如果让车自己动,就改动了目标),找人代理开车的工作,代理人会开车,并且他有车(有车是重点)
2 二个重点:代理者和对象继承同个接口(这个地方非常怪异);代理者拥有对象;
3 目的是不想或不能直接访问或修改对象
4 与装饰器有点像,似乎都是为了不改动对象而采取的方案
public abstract class Car
{
public abstract void Drive();
}
public class BMW : Car
{
public override void Drive()
{
Console.WriteLine("Drive car");
}
}
public class DiDier : Car
{
public BMW bmw;
public override void Drive()
{
if(bmw == null)
{
bmw = new BMW();
}
bmw.Drive();
}
}
class Drunker
{
public static void DriveBMW()
{
DiDier didi = new DiDier();
didi.Drive();
}
}