简说设计模式——代理模式(续)

 之前说了代理模式,即为其他对象提供一种代理以控制对这个对象的访问,详情见

  这里以持久化层的数据交互类为例,IUserDao是与数据库进行交互的接口,UserDao为IUserDao接口的实现类,UserDaoProxy为代理类,二者皆实现了IUserDao接口。说具体点就是,UserDao类是IUserDao接口的具体实现者,而UserDaoProxy类是通过调用UserDao类的相关方法来提供特定服务的。

  1. IUserDao接口

  这里为抽象目标类/接口。

复制代码
1 public interface IUserDao { 2     3     public void save(); 4 5 }
复制代码

   2. UserDao接口

  这里为具体目标类或被代理的对象。实现了IUserDao中的接口方法。

复制代码
1 public class UserDao implements IUserDao { 2 3     @Override 4     public void save() { 5         System.out.println("数据已保存!!!"); 6     } 7     8 }
复制代码

   3. 静态代理类

  首先在静态代理类中引入IUserDao接口,通过调用UserDao类的相关方法来提供特定服务。

复制代码
 1 public class UserDaoProxy implements IUserDao {  2      3     private IUserDao iUserDao;  4  5     public UserDaoProxy(IUserDao iUserDao) {  6         this.iUserDao = iUserDao;  7     }  8      9     @Override 10     public void save() { 11         System.out.println("开始事务..."); 12         iUserDao.save();    //执行目标对象13         System.out.println("提交事务..."); 14     } 15 16 }
复制代码

  4. Client客户端

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信