您的位置:首页 > 其它

静态代理简单介绍

2016-12-25 12:46 127 查看
静态代理

什么是代理,类似于现在生活中的中介或者说是销售

行业,他们有出租或者出售的能力,但是出租出售的

东西本身不是他们的属性,他们只是有这种功能但是

需要物品主人提供物品给他们,让他们去销售。

静态代理,为了代理对象的功能更加纯粹(重复的工
作交给代理去做,被代理的对象只是实现业务)。

以销售为例子做一个静态代理。
提供一个接口和业务方法的抽象方法。
package com.hist.LL.proxy;

public interface Sell {
String sell();
}

---------------------------------------------------------

/**
* 物品替换供者
*/
这个是物品提供者,不可或缺的一部分,这个是代理
要代理的对象。
package com.hist.LL.proxy;

public class ObjectServer implements Sell {

@Override
public String sell() {
System.out.println("有东西出售");
return "物主";
}
}
-------------------------------------------------------------------------
这一部分是代理,代理,代理要有和物主一样拥有
销售的能力,所以说要实现拥有销售方法的接口。
package com.hist.LL.proxy;

public class Seller implements Sell {
private ObjectServer objectServer;

public ObjectServer getObjectServer() {
return objectServer;
}

public void setObjectServer(ObjectServer objectServer) {
this.objectServer = objectServer;
}

@Override
public String sell() {
System.out.print("我是销售");
String sell = objectServer.sell();
System.out.println(sell + "同意了。");
return "代理";
}
}
-------------------------------------------------------------------------
买东西,要形成买卖关系,有人卖东西,还得有人
买东西才能形成这种关系,所以说,必须得购物者
这样可以从代理那买,也可以从物主那买。这样如
果说是对DAO层的操作的话,就可以让DAO层只做add,
delete,update,insert之类的操作,那些个无意义
输出或者日志记录交给代理去做。
package com.hist.LL.proxy;

public class Buyer {
public String buy() {
ObjectServer objectServer = new ObjectServer();
Seller seller = new Seller();
seller.setObjectServer(objectServer);
String sell = seller.sell();
return sell;
}
public static void main(String[] args) {
Buyer buyer = new Buyer();
String buyfrom = buyer.buy();
System.out.println("从"+buyfrom+"买来的。。。");
}
}
-------------------------------------------------------------------------
但是静态代理一个服务类对应一个代理,代码量并
没有减少,但是它更专业化,优缺点自己衡量是否
使用静态代理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  静态代理