摘要: DAO是J2EE设计模式中一种重要的设计模式。它上与BO(BusinessObject)业务逻辑层相连,下与数据源逼近,其重要性就不言而喻了。 举一个简单的例子:分页。分页是系统中非常常见的功能模块。我们用两种方式来模拟一下这个功能:纯净的JSP,还有JSP+DAO。 纯jsp的方式:我们会在页面里直接直接上sql语句:SELECT...FROM...LIMITn,m。如果我们系统中有好多个模块都要用到分页的功能,那这块管理分页的程序会立马出现在好多个页面上,这时候再加上数据库的连接关闭,或者其他的业务代码,我们的页面会显得很乱,不好维护。而且从代码复用的角度来说这样就不很合理。 下面我们看. 阅读全文
posted @ 2011-04-24 22:20 focusJ 阅读(872) 评论(0) 推荐(0) 编辑
摘要: 以前博客上转载过一个师哥的博客,是关于SSH分页的,关于分页的实现大家都有自己用的最顺手的方法,但是其实分页的思想是相似的。感觉师兄的那个方法太“重”了。其实一个分页的工具没必要再细分成那么多层,这样显得太笨重了。下面推荐一个轻量级的方法,小巧易用,不管是纯粹jsp,还是SSH,均可以使用。废话不再多说上源码: Pager类(关于分页的实体类):public class Pager { private int totalRows; // 总行数 private int pageSize = 15; // 每页显示的行数 private int currentPage; ... 阅读全文
posted @ 2011-04-12 10:52 focusJ 阅读(961) 评论(0) 推荐(0) 编辑
摘要: 1. 也是最讨厌的:NullPointerException。在整合SSH中经常出现的莫过于NullPointerException了,导致这种错的原因很多。bean的注入问题,也就是spring的配置文件中的错误;struts2和spring的整合问题,如果整合出现问题也会出现这种错误。关于第二种情况要多说一点了,因为今天我遇到了这个错误。其实也是常识性的错误struts2没有整合spring的应用。 这里简单说一下struts2和spring整合的问题:首先struts2方面应该引入struts2-spring-plugin-2.2.1.jar和其他struts2所必需的包,然后就是配置. 阅读全文
posted @ 2011-03-19 19:36 focusJ 阅读(1516) 评论(0) 推荐(0) 编辑
摘要: 简单描述js原型 原型提供了一群同类对象共享属性和方法的机制,对象继承原型的所有属性和方法(函数)。说白了js是使用原型来实现类继承的。充分理解prototype/__proto__ 初学者确实在这两个属性上是不容易分辨清楚地。所以,一个搞前端的朋友说,这两个属性完全搞明白了,那js原型也就差不多理解透彻了。那我尝试阐述一下这两个属性(内容总结自他人的结晶和js文档)。 prototype:prototype是函数的属性,它应用的场合是函数被用作构造函数时,如果你想让子类拥有某型特性,那我们可以直接操作父类(总是感觉父函数贴切)的这个prototype。所以在js的继承中prototyp... 阅读全文
posted @ 2012-09-24 08:31 focusJ 阅读(2147) 评论(1) 推荐(2) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2012-08-26 10:10 focusJ 阅读(495) 评论(10) 推荐(5) 编辑
摘要: 好长时间没有更新博客了,第一个原因是因为我懒了,第二个原因也是因为我懒了。这两个懒各有其意思,第一个懒是比起以前来自己变懒了,第二个懒是自己懒得收拾自己了,知道自己懒了但是却不去督促自己,警醒自己。放羊一样,爱往哪跑就往哪里跑吧。宁愿自己当狗情愿吃去那一腚屎。在内容没有开始之前先表一个态:从今天起(现在是晚上,今天指的是明天早晨),每天早晨7:00起床,人大跑步5圈,俯卧撑100,仰卧起坐100。刚才惰性又来侵犯,因为被一个害怕自己完不成的下意识触动了一下... 这么长的时间,四月到八月总共四个月,也发生了好多的事情。找工作,写论文,实习,毕业答辩,喝酒送别...这么多的事情一股脑儿的呈... 阅读全文
posted @ 2012-07-27 09:43 focusJ 阅读(1172) 评论(4) 推荐(2) 编辑
摘要: 一.初次见面 曾几何时我们已经忘记了Java赠送给开发者的这块"糖"--内部类。谈起内部类大家都会先停顿一下,然后才恍然大悟。"噢...对对对,某某某时我用过内部类"。好东西我们总是顺其自然的拿起来就用。今天带大家来回顾一下InnerClass的相关知识。曾几何时我也用过Java内部类:View Code package innerclass;import java.util.ArrayList;import java.util.List;//测试内部类的初始化和外围类之间的通信public class Box { private String name 阅读全文
posted @ 2012-03-19 17:26 focusJ 阅读(1599) 评论(0) 推荐(4) 编辑
摘要: 一.类图二.意图为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。三.适用性a)当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过Facade层。b)客户程序与抽象类的实现部分之间存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系 阅读全文
posted @ 2012-03-19 17:06 focusJ 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 一.类图二.意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。三.适用性a)当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用b)当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变。c)当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之,你不希望这些对象是紧密耦合的。四.实例乡村爱情第五部中大脑袋为大拿出了一个主意,当杨总来的时候保安拦住杨总,同时通知王大拿。这细节就不细说了,如果想看的上网看就行了。这是一个典型的Observer设计模式。pa 阅读全文
posted @ 2012-03-19 17:05 focusJ 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 一.类图二.意图为其他对象提供一种代理以控制对这个对象的访问。三.适用性a)在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用Proxy模式。下面是一些可以使用Proxy模式常见情况:1.远程代理(RemoteProxy)为一个对象在不同的地址空间提供局部代表。2.虚代理(VirtualProxy)根据需要创建开销很大的对象。在动机一节描述的ImageProxy就是这样一种代理的例子。3.保护代理(ProtectionProxy)控制对原始对象的访问。保护代理用于对象应该有不同的访问权限的时候。4.智能指引(SmartReference)取代了简单的指针,它在访问对象时执行一些附加操作 阅读全文
posted @ 2012-03-19 17:02 focusJ 阅读(2830) 评论(0) 推荐(0) 编辑
摘要: 一.类图二.意图定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。三.适用性a)许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。b)需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时[HO87],可以使用策略模式。c)算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。d)一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现。将相关的条件分支移入它们各自的Strategy类中以代替这 阅读全文
posted @ 2012-03-19 17:00 focusJ 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 一.类图二.意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。三.适用性a)一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。b)各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。c)控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展。四.实例模板模式我想用的最多的就是在DAO模式中。通常我们会编写好多的DAO类,这时我们的做法是将这些DAO中的共有方法抽象到一个AbstractDAO中,直接好处就是节省代码。代码不列举,不知道的朋友 阅读全文
posted @ 2012-03-19 16:58 focusJ 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 一.类图类适配器:对象适配器:二.意图将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。三.适用性a)你想使用一个已经存在的类,而它的接口不符合你的需求。b)你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。c)(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。四.实例随着西方文化在中国的盛行,外国的饮食也受到人们的追捧。KFC、麦当劳在中国可谓是遍地开花。但是一些上了年纪的人总是吃 阅读全文
posted @ 2012-03-19 16:57 focusJ 阅读(345) 评论(0) 推荐(0) 编辑