代理设计
代理设计指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。好像代理上网一样,客户通过网络代理连接网络,由代理服务器完成用户权限和访问限制等与上网操作相关的操作。
只需要定义一个上网的接口,代理主题和真实主题都同时实现该接口,然后再由代理操作真实主题即可。
interface Network{ public void browse(); } class Real implements Network{ //真实的上网操作 public void browse(){ //覆写抽象方法 System.out.println("上网浏览信息"); } } class Proxy implements Network{ //代理上网 private Network network; public Proxy(Network network){ //设置代理的真实操作 this.network = network; //设置代理的子类 } public void check(){ this.check(); //可以同时调用多个与具体业务相关的操作 this.network.browse(); //调用真实上网操作 } } public classs ProxyDemo{ public static void main(String[] args){ Network net = null; //定义接口对象 net = new Proxy(new Real());//实例化代理,同时传入代理的真实操作 net.browse(); //客户只关心上网浏览一个功能 } }