设计优化(2)代理模式
来源:互联网 发布:有关网络的英语单词 编辑:程序博客网 时间:2024/05/21 20:26
使用代理模式来实现延迟加载的意义:比如某客户端软件,需要根据用户请求,去数据库查询数据,在查询数据前,需要获取数据库连接,此时初始化系统所有类。这会使得系统的启动速度变得非常缓慢,因此,使用代理模式,使用代理类,分装对数据查询中的初始化操作,当系统启动时,初始化代理类,而非真实的数据库查询类。在用户真正查询时,再由代理类单独去加载真实的数据库查询类。完成用户的请求。其核心思想是:如果当前没有使用这个组件,则不需要真正的去初始化它,而是使用一个代理对象代替它。等到真正用的时候再去加载初始化它。
public interface IDBQuery{String find();}
public class DBQuery implements IDBQuery{ public DBQuery(){//可能有很多数据库连接等耗时操作} public String find(){return "DBQuery.find()";}}
public class DBQueryProxy implements IDBQuery{private DBQuery real=null;@Overridepublic String find(){if(real==null){real=new DBQuery();} return real.find();}}
主方法:
public class Main{public static void main(String []args){IDBQuery q=new DBQueryProxy();q.find();//在真正使用时才创建真实对象}}
动态代理:动态代理是指在运行时,动态生成代理类。即,代理类的字节码将在运行时动态生成并载入当前的ClassLoader。动态代理有许多好处:比如不需要为每一个真实主题写一个代理类。
0 0
- 设计优化(2)代理模式
- 代理模式设计(2)-----动态代理
- java 程序性能优化《第二章》设计优化 2.1善用设计模式 2 代理模式
- 设计模式(2) 代理模式 静态代理
- 【设计优化】-正确使用代理模式
- 设计模式(代理模式--静态代理)
- 设计模式(代理模式--动态代理)
- 【设计模式】代理模式(动态代理)
- 设计模式(2)-代理模式
- 设计模式(代理模式)
- 设计模式(代理模式)
- 设计模式:7)代理设计模式
- 设计模式- 代理模式 (静态代理 和 动态代理)
- Java程序性能优化 读书笔记(三)设计模式:代理模式
- 【设计模式】--代理模式 (Proxy模式)
- 设计模式 - 代理、外观(2)
- 设计模式--代理(静态)
- 代理设计模式(proxy)
- 源码级调试C库
- 看看Retrofit2.0运行方式
- Leetcode:Longest Palindromic Substring QuestionEditorial Solution
- 《Android开发艺术探索》之学习笔记(三)View的基础知识
- 排序算法
- 设计优化(2)代理模式
- 装载问题 回溯法解决
- RBM and NADE TO Collaborative Filtering
- Java实现二叉树的基本操作
- CSS笔记:长度单位(二)
- liunx Shell 脚本入门
- Java中参数传递问题总结
- 显著性论文学习阶段总结(一)
- poj2836 状态压缩dp