代理模式:不直接通过原有类调用,而是添加代理类进行调用。可以对外屏蔽原有类,其中原有类是不感知代理类的,并不知道是谁调用的,而代理类是感知原有类的,因为持有原有类的引用。
例如我想买火车票,但是亲自去买,我嫌麻烦,就希望有人替我买。我不关心代理人手中的票是怎么来的,我只希望能从代理人那获得火车票。
//定义买票接口
interface Ticket{
void buy();
}
class People implements Ticket{
buy(){
//买票
}
}
class Proxy implements Ticket{
private People p;
buy(){
//代理人去火车站买票
//代理人去网上订票
//最终获取到票,我就获得了票
p.buy();
}
}