java设计模式
文章平均质量分 64
alexjjf
这个作者很懒,什么都没留下…
展开
-
JAVA中用动态代理类实现记忆功能(一)
记忆是衍生自Lisp,Python,和Perl等过程性语言的一种设计模式,它可以对前次的计算结果进行记忆。 一个实现了记忆功能的函数, 带有显式的cache, 所以, 已经计算过的结果就能直接从cache中获得, 而不用每次都进行计算.记忆能显著的提升大计算量代码的效率. 而且是一种可重用的方案.本文阐述了在Java中使用这一模式的方法,并提供了一个可以提供上述功能的"记忆类": Foo转载 2006-10-24 14:38:00 · 604 阅读 · 0 评论 -
框架不是框框—应用框架的基本思想
软件构件化是21世纪软件工业发展的大势趋。工业化的软件复用已经从通用类库进化到了面向领域的应用框架。Gartner Group认为:“到2003年,至少70%的新应用将主要建立在如软件构件和应用框架这类‘构造块’之上;应用开发的未来就在于提供一开放体系结构,以方便构件的选择、组装和集成”。框架的重用已成为软件生产中最有效的重用方式之一。然而—— 一、构件与框架有何关系? 1转载 2007-06-05 11:55:00 · 932 阅读 · 0 评论 -
持久层设计与资源管理模式
无论是怎样的应用系统,都无法脱离对资源的管理和使用。而对于持久层而言,资源的合理管理和调度则显得尤为重要。在大多数应用系统中,80%以上的应用逻辑并不需要特别复杂的数据库访问逻辑(可能只是几条简单的Select或作者Insert/Update语句)。对于这些占到多数的简单逻辑而言,如果SQL语句和数据库本身的设计不是太糟糕(合适的关联,字段索引以及数据库分区策略),在特定的硬件环境下,我们认为转载 2007-03-19 16:42:00 · 679 阅读 · 0 评论 -
DAO设计模式
持久层设计与资源管理模式 无论是怎样的应用系统,都无法脱离对资源的管理和使用。而对于持久层而言,资源的合理管理和调度则显得尤为重要。在大多数应用系统中,80%以上的应用逻辑并不需要特别复杂的数据库访问逻辑(可能只是几条简单的Select或作者Insert/Update语句)。对于这些占到多数的简单逻辑而言,如果SQL语句和数据库本身的设计不是太糟糕(合适的关联,字段索引以及数据库分区策略),在转载 2007-03-19 11:52:00 · 893 阅读 · 0 评论 -
应用--设计模式的原则
近年来,大家都开始注意设计模式。那么,到底我们为什么要用设计模式呢?这么多设计模式为什么要这么设计呢?说实话,以前我还真没搞清楚。就是看大家一口一个"Design pattern",心就有点发虚。于是就买了本"四人帮"的设计模式,结果看得似懂非懂:看得时候好像是懂了,过一会就忘了。可能是本人比较"愚钝"吧:))最近,有了点感悟。"独乐不如众乐",与大家分享一下,还望指教! 为什么要提倡原创 2007-02-26 14:31:00 · 811 阅读 · 0 评论 -
refactoring--除去代码异味(bad smell)(2)
让我们来看一下另外一个例子 ,在当前的系统中 ,有三种用户 :常规用户 ,管理员和游客 。 常规用户必须每隔90 天修改一次密码 (更频繁也行 ),管理员必须每30 天修改一次密码 ,游客就不需要修改了,常规用户跟管理员可以打印报表 。 先看一下当前的代码 :class UserAccount { final static int USERTYPE_NORMAL =转载 2006-12-18 22:37:00 · 1080 阅读 · 0 评论 -
refactoring--除去代码异味(bad smell)(1)
异味这个词, 可能有点抽象, 我们先看一下下面的例子这是一个CAD 系统.现在, 它已经可以画三种形状了 : 线条, 长方形, 跟圆.先认真的看一下下面的代码 : class Shape { final static int TYPELINE = 0; final static int TYPERECTANGLE = 1; final static int TYPECIR转载 2006-12-18 22:33:00 · 917 阅读 · 0 评论 -
设计模式让你不再初级
一、编程中抽象思维方法的重要性世界非常复杂善变。程序员必须要应对这复杂善变的世界。如何应对?用抽象的方法。人类最重要的思维能力就是抽象的能力,计算机程序无论多智能,到目前为止,还是没有任何抽象能力。设计系统、编写代码、代码演化的过程,必须是一个抽象的过程。不能理解这一句话的程序员,不能称为一个优秀的程序员。解释一下,何为程序员的抽象。程序员的抽象方法,一般指的就是封装。封装什么?封装变化,封装复转载 2006-12-15 23:26:00 · 940 阅读 · 0 评论 -
重构与模式
这本书写的还真不错,要认真看完o-----------------------最近也在研习我所敬仰的南怀谨高人的,应该会很有所得的,呵呵...................原创 2006-11-21 22:54:00 · 1185 阅读 · 2 评论 -
abstract class和interface
Java的interface和a转载 2006-10-31 22:15:00 · 926 阅读 · 0 评论 -
AOP编程入门--Java篇
Aspect Oriented Programming(AOP),面向切面编程,是一个比较热门的话题。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。比如我们最常见的就是日志记录了,举个例子,我们现在提供一个服务查询学生信息的,但是我们希望记录有谁进行了这个查询。如果按照传统的OOP的实现的话,那我们转载 2006-10-24 16:50:00 · 1212 阅读 · 3 评论 -
利用反射实现类的动态加载(程序改正)
原有的http://blog.csdn.net/bromon/上程序未能通过,本文增加之,谢谢原作者:最近在成都写一个移动增值项目,俺负责后台server端。功能很简单,手机用户通过GPRS打开Socket与服务器连接,我则根据用户传过来的数据做出响应。做过类似项目的兄弟一定都知道,首先需要定义一个类似于MSNP的通讯协议,不过今天的话题是如何把这个系统设计得具有高度的扩展性。由于这个项目原创 2006-10-24 16:47:00 · 829 阅读 · 0 评论 -
JAVA中用动态代理类实现记忆功能(二)
通过动态代理类来创建一个通用的缓存包装器 上面第二种方法仅有的缺点就是缓存包装器不能重用,每次我们希望添加一个缓存给某个类,我们就要写一个特殊的缓存包装器给目标接口.这是一个很慢,容易出错的过程. Jdk1.3开始支持动态代理类: 特别的类能够在运行期决定实现哪个接口-通常的模式都是,在运行期即决定实现哪个接口.通过这个,我们有可能实现一个通用的缓存包装器,我们称它为Memoizer,转载 2006-10-24 14:39:00 · 633 阅读 · 0 评论 -
java多线程设计模式
作者:xuefeng 来源: http://www.crackj2ee.com/Article/ShowArticle.asp?ArticleID=145线程的创建和启动java语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动原创 2007-06-05 12:01:00 · 1059 阅读 · 0 评论