设计模式--代理设计

      所谓代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体业务操作,而代理主题负责其他相关的业务的处理。
      eg:生活中我们使用代理上网,客户通过网络代理连接网络,由代理服务器完成用户权限和访问限制等与上网操作相关的操作。
分析:
      只需要定义一个上网的接口,代理主题和真实主题都同时实现此接口,然后再由代理主题操作真实主题即可。



interface Network{						// 定义上网的接口
	public void surfingOnline();		// 定义上网浏览的抽象方法
}
class Real implements Network {			// 真实的上网操作
	public void surfingOnline(){		// 覆写抽象方法
		System.out.println("上网看空间!!!");
	}
}
class Proxyer implements Network{			// 代理上网
	private Network network;
	public Proxyer(Network network){		// 设置代理的真实操作
		this.network = network;			// 设置代理的子类
	} 
	public void check(){				// 与具体业务相关的操作
		System.out.println("我帮你检查用户是否合法。");
	}
	public void surfingOnline(){
		this.check();					// 可以同时调用多个与具体业务相关的操作
		this.network.surfingOnline();	// 调用真实上网操作
	}
}
public class ProxyDemo {
	public static void main(String []args){
		//Netwrok net = null;						// 定义接口对象
		Network net = new Proxyer(new Real());		//实例化代理,同时传入代理的真实操作
		net.surfingOnline();						// 客户只关心上网浏览一个功能
	}
}




从上面可以看出,真实主题只用完成上网最基本功能,而代理主题要做比真实主题更多的业务相关的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值