这篇文章主要介绍了 JAVA 静态代理模式详解及实例应用的相关资料, 这里举例说明 java 静态代理模式该如何使用, 帮助大家学习参考, 需要的朋友可以参考下
JAVA 静态代理模式
代理模式(Proxy): 为其他对象提供一种代理以控制对这个对象的访问
代理模式说白了就是真实对象的代表, 在访问对象时引入一定程度的间接性, 因为这种间接性可以附加多种用途
在这实现代码之前, 先讲一个简单的生活故事, 我们都知道我们周边有很多公司有房屋买卖或租赁的业务, 比如链家 (LianJia), 但链家本身是不存在任何实际房屋资产的, 他所售卖租赁的房屋均需要房屋产权所有人(HomeMaster) 提供, 才得以实现公司的房源需求; 同时公司要的卖房租房业务均需要公司员工 (Seller) 来实现, 但员工要实现该方法, 必须经过公司授权以及动用公司的业务资源渠道才可以完成任务故事讲到这里, 我们应该清楚这里的 Seller 其实就是代理模式中静态代理了, 那么我们开始该模式的代码书写(这里省略了代理实现方法前后的业务逻辑):
- interface LianJia{//LianJia 提供房屋买卖的渠道方法(公司业务)
- public void sellHouse();
- }
- class HomeMaster implements LianJia{// 房主需要通过链家卖房(实现公司的业务渠道)
- public void sellHouse(){
- System.out.println("我有套房子要卖");
- }
- }
- class Seller implements LianJia{// 链家的业务需要 Seller 实现
- private LianJia lj;// 声明链家公司(可理解为必须证明该 seller 是链家的), 方便调用方法
- public Seller(LianJia lj){
- this.lj = lj;
- }
- public void sellHouse(){
- lj.sellHouse();// 实际实现方式需要调用公司的业务渠道方法
- }
- }
- public class ProxyMode{
- public static void main(String[] args){
- HomeMaster hm = new HomeMaster();
- Seller s = new Seller(hm);// 代理代房主实现卖房需求
- s.sellHouse();
- }
- }
来源: http://www.phperz.com/article/18/0222/359341.html