静态代理简单介绍
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+"买来的。。。"); } } ------------------------------------------------------------------------- 但是静态代理一个服务类对应一个代理,代码量并 没有减少,但是它更专业化,优缺点自己衡量是否 使用静态代理。
相关文章推荐
- Java中静态代理和动态代理介绍
- 一种非常简单的静态网页生成方法介绍
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- iOS开发UI篇—简单介绍静态单元格的使用
- iOS开发UI篇—简单介绍静态单元格的使用
- Java中静态代理和动态代理介绍
- iOS开发UI基础—简单介绍静态单元格的使用
- Java中静态代码块与构造代码块的简单介绍
- cglib动态代理简单介绍
- UI基础第十四弹: 简单介绍静态单元格的使用
- java简单静态代理(聚合)
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- Java中静态代理和动态代理介绍
- hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition)
- 简单的Java代理示例 静态代理
- Java中静态代理和动态代理介绍
- Java静态检测工具的简单介绍
- 静态变量、静态方法、静态代码块、非静态变量及非静态方法的简单介绍
- hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition)
- [教程]Java代理(静态,动态jdk和Cglib)简单应用