设计模式之代理模式(Proxy)

来源:互联网 发布:阿里云学生机认证 编辑:程序博客网 时间:2024/05/01 19:52

       代理模式,顾名思义就是某些行为一个类无法自己完成,需借助其他对象完成操作。代理模式与之前介绍过的装饰模式和适配器模式在思路和表现形式上都非常相似,希望看完这篇文章可以让大家的思路能够更清晰一些。

       我们的烧包小程序员又要出场了。开着新车到处跑,车子很快就没有油了,由于比较土鳖没有办自助油卡,不能自己使用加油机加油啊,只能劳烦加油站师傅代理自己进行加油工作啦。

interface Oiler{
 public void getGas();
}

//中石油加油站。。
class ZSYOiler implements Oiler{
 public void getGas() {
  // TODO Auto-generated method stub
  System.out.println("给车子加油!");
 } 
}

//由于没有自助油卡,只能通过加油站的服务人员代理加油啦
class GasMan implements Oiler {
 private Oiler o;
 
 GasMan(Oiler o){
  this.o = o;
 }
 public void getGas() {
  // TODO Auto-generated method stub
  this.getMoney();
  o.getGas();
  this.setFaPiao();
 }
 
 public void getMoney(){
  System.out.println("收钱!");
 }
 
 public void setFaPiao(){
  System.out.println("给发票!");
 }
 
}

 

//执行主函数,车子加满油啦

public class ProxyPattern {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Oiler o = new ZSYOiler();
  GasMan gm = new GasMan(o);
  
  gm.getGas();
 }
}