设计模式
文章平均质量分 66
kayaya
这个作者很懒,什么都没留下…
展开
-
对接口的思考——抽象与实现的分界
接口,关系着抽象与实现。在应用层中,接口通常被引用或者说是调用,是抽象层的 逻辑对象,在应用层中,实现是不必实现的--也就是说,我们没必要向客户交代我们 是怎样去实现的。我们提供的只要符合客户的需要就可以了。下面是我的一下思考: 1、等号的两端。 面向对象设计,重要的一个特点是多态。一个引用,可以引用多种态的对象,而这些 对象只要符合引用的原创 2009-05-25 22:20:00 · 405 阅读 · 0 评论 -
代理模式
代理模式在程序设计中有两个对象,一个是代理对象,另一个是原对象。这两个对象共同实现了一个接口,这个接口代表着一个共同行为的抽象。在调用代理对象的同名方法的时候,其会调用原对象的同名方法。同时在此前后可以调用其它的方法,以增加服务去达到不同的效果。 对于客户(应用层),通常会调用接口,或直接调用代理类。调用接口,配合工厂方法使用,可以使应用层的业务逻辑与实现层的业务逻辑分离,实现解耦合。在原创 2009-05-25 11:13:00 · 641 阅读 · 1 评论 -
JDK动态代理实现的思考
jdk的动态代理要求根据相应的接口而生成实例作为目标对象的代理的,当调用代理对象 的每一个方法时,都会执行InvocationHandler实例中的invoke()方法。那就是说,在 构建代理对象的时候,在代理对象中植入了一个InvocationHandler引用,构造时把实 例传入就是了,这个过程是在Proxy.newProxyInstance(loader, inter原创 2009-05-27 09:07:00 · 300 阅读 · 0 评论 -
对反射的思考——另一种抽象,另一种实现
反射实现了在程序运行时动态编译生存对象的一种机制。这个机制依赖对JAVA的类的一种抽象——即Class类。与Class类联系的其它类Method类、Field类、Constructor类、Modifier类等代表各种信息的类。书里面说,反射是在运行时通过获得运行对像的类信息,即Class对象,从而运行Class对象信息进行动态地操作。而在运行时对像的信息可以在编译的时候就知道的,那叫做RTTI,而原创 2009-05-27 11:38:00 · 362 阅读 · 0 评论 -
JAVA中用动态代理类实现记忆功能(一)
JAVA中用动态代理类实现记忆功能(一) 记忆是衍生自Lisp,Python,和Perl等过程性语言的一种设计模式,它可以对前次的计算结果进行记忆。 一个实现了记忆功能的函数, 带有显式的cache, 所以, 已经计算过的结果就能直接从cache中获得, 而不用每次都进行计算.记忆能显著的提升大计算量代码的效率. 而且是一种可重用的方案.本文阐述转载 2009-05-27 19:53:00 · 323 阅读 · 0 评论 -
JAVA中用动态代理类实现记忆功能(二)
JAVA中用动态代理类实现记忆功能(二) 通过动态代理类来创建一个通用的缓存包装器 上面第二种方法仅有的缺点就是缓存包装器不能重用,每次我们希望添加一个缓存给某个类,我们就要写一个特殊的缓存包装器给目标接口.这是一个很慢,容易出错的过程. Jdk1.3开始支持动态代理类: 特别的类能够在运行期决定实现哪个接口-通常的模式都是,在运行期转载 2009-05-27 19:51:00 · 318 阅读 · 0 评论