代理模式
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();
}
}