码迷,mamicode.com
首页 > 编程语言 > 详细

Java静态代理解析

时间:2015-01-27 17:49:43      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

java 静态代理的主要特征就是,代理类和委托类要实现同样的接口。在调用接口方法的时候,对外提供一个实例工厂对象。

静态代理类优缺点 
优点:业务类只需要关注业务逻辑本身,保证了业务类的重用性。这是代理的共有优点。 
缺点: 
1)代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。 
2)如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度。 

 

技术分享
1 public interface ImplUserDao {
2     public void add();//定义  添加接口
3     public void delete();//定义删除接口
4 }
ImplUserDao接口
技术分享
 1 public class UserDaoImpl implements ImplUserDao{
 2 
 3     /* (non-Javadoc)
 4      * @see cn.org.fupin.ImplUserDao#add()
 5      */
 6     public void add() {
 7         // TODO Auto-generated method stub
 8         System.out.println("UserDaoImpl.add()");
 9     }
10 
11     /* (non-Javadoc)
12      * @see cn.org.fupin.ImplUserDao#delete()
13      */
14     public void delete() {
15         // TODO Auto-generated method stub
16         System.out.println("UserDaoImpl.delete()");
17     }
18     
19 
20 }
UserDaoImpl委托类
技术分享
 1 public class UserDaoProxy implements ImplUserDao{
 2 
 3     private ImplUserDao implUserDao;
 4     
 5     public UserDaoProxy(ImplUserDao implUserDao) {
 6         
 7         this.implUserDao = implUserDao;
 8     }
 9 
10     public void add() {
11         // TODO Auto-generated method stub
12         implUserDao.add();
13     }
14 
15     /* (non-Javadoc)
16      * @see cn.org.fupin.ImplUserDao#delete()
17      */
18     public void delete() {
19         // TODO Auto-generated method stub
20         implUserDao.delete();
21     }
22 
23 }
UserDaoProxy代理类
技术分享
1 public class UserDaoFactory {
2     
3 
4     public static ImplUserDao getUserInstance(){
5         return new UserDaoProxy(new UserDaoImpl());
6     }
7     
8 }
UserDaoFactory工厂类
技术分享
1 public class Client {
2     public static void main(String[] args) {
3         ImplUserDao implUserDao = UserDaoFactory.getUserInstance();
4         implUserDao.add();
5         implUserDao.delete();
6     }
7 }
Client测试类

 

Java静态代理解析

标签:

原文地址:http://www.cnblogs.com/shuanlei/p/4253543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!