当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 通过动态代理类来创建一个通用的缓存包装器上面第二种方
 

 

    摘要:转载自《计算机世界日报》 (文/陈军) 一、 开发目的及原理 ---- 本公司在产品开发过程中,需要研究多种以太网交换机(又称智能集线器)的内部网管信息结构,为此,必须编写出一个“窃听”程序,把网管程序和交换机的通讯内容记录下来加以分析。本人在visual c++ 6.0下用mfc socket类编出程序,成功地实现了上述目的。 ---- 目前,标准的网络管理程序与支......
    摘要:今天与朋友对architecture进行了一番讨论,最后这哥们搬出了《the unified software development process》的资料证明给我看 呵呵,俺不敢妄言uml三巨头的rup有错,但如果行而上,是不是有迷失自己的危险?! 说实话,对uml和rup,小朋友我还初在似懂非懂的阶段。 uml这种东东给我带来对软件研发的思考,首先是从不同的角度去分析软件的合理性,但每......


JAVA中用动态代理类实现记忆功能(二)
通过动态代理类来创建一个通用的缓存包装器

     jdk1.3开始支持动态代理类: 特别的类能够在运行期决定实现哪个接口-通常的模式都是,在运行期即决定实现哪个接口.通过这个,我们有可能实现一个通用的缓存包装器,我们称它为memoizer,在运行期决定实现哪个接口.这样, cachingbinarydigitscalculator就是不再需要的.它是这样被调用的: 【程序编程相关:**火热下载**java Msn机器人最

   上面第二种方法仅有的缺点就是缓存包装器不能重用,每次我们希望添加一个缓存给某个类,我们就要写一个特殊的缓存包装器给目标接口.这是一个很慢,容易出错的过程. 【推荐阅读:Signpost启动脚本 for GNU

  new cachingbinarydigitscalculator( 【扩展信息:Asp组件中级入门与精通系列之二

binarydigitscalculator calculator =

    new pibinarydigitscalculator()

  );

可以通过memoizer来重写如下:

binarydigitscalculator calculator =

  (binarydigitscalculator) memoizer.memoize(

    new pibinarydigitscalculator()

  );

memoizer的代码如下:

[code]import java.lang.reflect.invocationhandler;

import java.lang.reflect.invocationtargetexception;

import java.lang.reflect.method;

import java.lang.reflect.proxy;

import java.util.arrays;

import java.util.collections;

import java.util.hashmap;

import java.util.list;

import java.util.map;

public class memoizer implements invocationhandler {

  public static object memoize(object object) {

      return proxy.newproxyinstance(

        object.getclass().getclassloader(),

        object.getclass().getinterfaces(),

        new memoi
...   下一页
    摘要:俺一向信奉“它山之石可以攻玉 ”。 多年从事计算机的经验告诉我,对待棘手问题最有效率的方式是依赖“它山”(可能有人一辈子也找不到这座山!)。 这种思路可能触及了某些技术疯子的敏感神经。但却是俺的切身体会。 抛开软件不谈,以小朋友我对硬件和一些操作系统使用的精力来看 对待某些问题不能一味死钻牛角尖。 殊途同归是老夫到现在还能搞定一些别人反复试......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE