爱分享666

当前位置:首页 >java技术博客>java基础

代理模式定义如下:

其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

 

代理模式的三种角色:

抽象角色(一般采用抽象类或者接口)

真实角色(抽象角色的具体实现,具体实现)

代理角色(具体对外干活的)

 

场景概述如下:

图书包括图书名称和出版社,但是我们在获取这两个值的时候都会事先知道他的价格,当获取其两个属性之后我们会考虑是否阅读。

 

Java静态代理的实现:

抽象角色:

Java代码  收藏代码

  1. public interface IBook {  

  2.     String getBookName();  

  3.   

  4.     String getBookPress();  

  5. }  

实现角色:

Java代码  收藏代码

  1. public class JavaBook implements IBook {  

  2.   

  3.     @Override  

  4.     public String getBookName() {  

  5.         return "Java 程序设计";  

  6.     }  

  7.   

  8.     @Override  

  9.     public String getBookPress() {  

  10.         return "上海科学出版社";  

  11.     }  

  12.   

  13. }  

代理角色:

Java代码  收藏代码

  1. public class ProxyBook implements IBook {  

  2.     private IBook book = null;  

  3.   

  4.     public ProxyBook(IBook book) {  

  5.         super();  

  6.         this.book = book;  

  7.     }  

  8.   

  9.     @Override  

  10.     public String getBookName() {  

  11.         System.out.println("获取图书价格成功");  

  12.         String bookName = book.getBookName();  

  13.         System.out.println("后续可以阅读");  

  14.         return bookName;  

  15.     }  

  16.   

  17.     @Override  

  18.     public String getBookPress() {  

  19.         System.out.println("获取图书价格成功");  

  20.         String bookPress = book.getBookPress();  

  21.         System.out.println("后续可以阅读");  

  22.         return bookPress;  

  23.     }  

  24.   

  25. }  

 

测试代码:

Java代码  收藏代码

  1. public static void main(String[] args) {  

  2.     IBook book = new ProxyBook(new JavaBook());  

  3.     book.getBookName();  

  4.     book.getBookPress();  

  5. }  

 

发现问题:

Java代码  收藏代码

  1. 1.抽象角色的行为发生变化的时候就需要重新写代理类的实现了  

上一篇:

CGLIB 完成动态代理 代码演示

下一篇:

java JDK动态代理实现原理 代码演示

0 +1
打赏 ×

如果网站能给予您帮助,欢迎给网站捐助,给我打赏个吧!
您的支持是我的动力,让网站能一直陪伴着大家,共同学习进步。
捐助费用将用于网站日常运营(服务器租费、域名租费等)
捐助者请发送邮箱提供姓名至 zhaoqn@163.com 留言以表感谢。

网友评论


  • 验证码:

热门评论

本月热门

推荐资料

精彩评论

回到顶部