JiveJdon Community Forums
在线94人 J道首页 | 论坛首页 | 培训咨询 | 开源框架 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 5 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
escape

发表文章: 23
注册时间: 2005年01月14日 22:58
请问Proxy, InvocationHandle的问题 发表: 2005年01月20日 10:10 回复
在一个贴子里看到的 "使用Proxy.newProxyInstance包装对象池,免去returnObject方法调用 "

我想问一下, 这个用Proxy, InvocationHandle来处理, 有什么好处么?

谢谢了@
banq

发表文章: 8929
注册时间: 2002年08月03日 17:08
Re: 请问Proxy, InvocationHandle的问题 发表: 2005年01月20日 13:38 回复
可以干净了原来的代码,统一使用一个类就可以实现对象池。关键你需要了解对象池的使用。
escape

发表文章: 23
注册时间: 2005年01月14日 22:58
Re: 请问Proxy, InvocationHandle的问题 发表: 2005年01月20日 14:13 回复
谢谢Banq, 有这方面的资料可以提供一下么?

谢了!
escape

发表文章: 23
注册时间: 2005年01月14日 22:58
Re: 请问Proxy, InvocationHandle的问题 发表: 2005年01月21日 13:55 回复
to banq 兄: 下面是我写的代码, 我发现, 如果提供一个工厂方法 getSimple 这时, 就造成了和客户端紧密偶合, 有什么办法解决呢?
import java.lang.reflect.Proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

interface Simple {
void sayHello();
}

class SimpleImpl implements Simple {
public void sayHello() {
System.out.println("Hello");
}
}

class AOPHandler implements InvocationHandler {
public static String SAYHELLO_METHOD_NAME = "sayHello";
Simple simple = new SimpleImpl();
public static Simple getSimple() {
return (Simple)Proxy.newProxyInstance(SimpleImpl.class.getClassLoader(),
SimpleImpl.class.getInterfaces(),new AOPHandler());
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable{
Object obj = null;
//if (SAYHELLO_METHOD_NAME.equals(method.getName())) {
System.out.println("before say hello method");
//} else {
obj = method.invoke(simple, args);
//}
return obj;
}
}

public class ProxyTest {
public static void main(String[] args) {
Simple simple = AOPHandler.getSimple();
simple.sayHello();
}
}
keymaster

发表文章: 3
注册时间: 2005年01月22日 07:40
Re: 请问Proxy, InvocationHandle的问题 发表: 2005年01月22日 08:11 回复
下面是我写的代码, 我发现, 如果提供一个工厂方法 getSimple 这时, 就造成了和客户端松散偶合, 有什么办法解决呢?

public class ProxyTest {
public static void main(String[] args) {
Simple simple = (Simple)Proxy.newProxyInstance(SimpleImpl.class.getClassLoader(),
SimpleImpl.class.getInterfaces(),new AOPHandler());
simple.sayHello();
}
escape

发表文章: 23
注册时间: 2005年01月14日 22:58
Re: 请问Proxy, InvocationHandle的问题 发表: 2005年01月22日 14:29 回复
如果用动态代理来实现缓冲池的话, 到是不会有耦合的总是, 但是, 如果是一个商业逻辑的话,比果, 我要记录一个逻辑方法的日志, 就会出现这样的问题
这个主题有 5 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-07 jdon.com

anti spam