`
yiliner
  • 浏览: 214604 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
《设计模式》一书对Factory Method模式是这样描述的:     定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。     我的理解:FatoryMethod模式是一种创建型模式,定义一个用于创建对象的接口的意思是说,我们要定义一个用于创建对象的接口(或者说抽象类,实际上就是个抽象工厂abstractFactory),它的内部有一个创建对象的方法,这个方法的返回值是一个接口(或者抽象类)的类型,这个方法就是FactoryMethod;让子类决定实例化哪一个类意思是说我们要定义一个实现了该创建对象的接口(或者抽象类)的子类(具体 ...
《设计模式》一书对Singleton模式是这样描述的:保证一个类只有一个实例,并提供一个访问它的全局访问点。这个模式比较简单,下面给出一个例子:public class Singleton {  private static Singleton instance;  private Singleton(){     }  public static Singleton getInstance(){   if(instance==null)    instance=new Singleton();   return instance;  }}这个程序在单线程下运行不会有问题,但是它不能运行在多线程 ...
《设计模式》一书对Template Method模式是这样描述的: 定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重新定义它的步骤。 我的理解:定义一个抽象类或者说接口,在它的内部定义一些抽象的方法 ...
《设计模式》一书对Observer是这样描述的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。举个例子,在现实生活中,父母与孩子是最亲密的人。父母做为孩子(被观察者)的监护人(观察者),当孩子和别人打架后,一定会告诉他的父母这件事(呵呵,当孩子很小时,通常会告诉父母,长大了以后,可能不会,这里的孩子指的是小孩子),当孩子获得奖学金后,也一定会告诉他的父母。下面我用Observer实现这个程序。代码如下:import java.util.Vector; class Children{ static private Vector<Obs ...
《设计模式》一书对Decorator是这样描述的: 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式比生成子类更为灵活。也就是说:动态地给对象添加一些额外的功能。它的工作原理是:创建一个始于Decorator对象(负责新功能的对象)终止于原对象的一个对象的“链”。例如,我们要为超市的收银台设计一个打印票据的程序,有的需要打印票据的头信息,有的需要打印票据的页脚信息,有的只需要打印票据的内容。如果针对每一种情况都修改一次程序,势必会很麻烦。这时我们可以考虑使用Decorator模式。其结构类图如下:  代码如下:abstract class Component{ abs ...
GOF《设计模式》一书对Abstract Factory模式是这样描述的:     为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。  大致意思是说:我们在创建这些对象的时候,并不需要指定它们的具体类,这些具体类的对象是由工厂对象负责实例化的。下面是《Design Patterns Explained》一书的例子,有关计算机系统的显示和打印程序,用来显示和打印的分辨率取决于当前运行的系统。低端机使用低分辨率的显示和打印驱动程序,高端机使用高分辨率的显示和打印驱动程序。其结构图如下: 代码如下: abstract class ResFactory{     abstract ...
设计模式》一书对Bridge是这样描述的: 将抽象与其实现解耦,使它们都可以独立地变化。 大致意思是说:将一组实现与另一组使用他们的对象分离。这里的实现指的是抽象类及其 派生类用来实现自己的对象(而不是抽象类的派生类,这些派生类被称为具体类)。下面 是《Design Patterns Explained》书中的例子。其结构图如下:   下面是它的实现: abstract class Shape{     protected Drawing myDrawing;     abstract public void draw();     Shape(Drawing drawing){         ...
GOF《设计模式》一书对Strategy模式是这样描述的:     定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换。Strategy模式使算法可独立于使用它的客户而变化。     Strategy模式以下列几条原则为基础: 1) 每个对象都是一个具有职责的个体。 2) 这些职责不同的具体实现是通过多态的使用来完成的。 3) 概念上相同的算法具有多个不同的实现,需要进行管理。 下面我将通过一个实例来说明它的具体使用,这个例子是关于数据库连接的。代码如下: interface DatabaseStrategy{     public void process(); }
GOF《设计模式》一书对Adapter模式是这样描述的:   将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。     这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求: 1) 为都有“显示”(display)行为的点、线、正方形分别创建类。 2) 客户对象不必知道自己到底拥有点、线、还是正方形。它只需知道拥有这些形状中的一个。 也就是说,我们要用一个更高层次的概念将这些具体形状都涵盖进去,这个高层概念可以称为:“可显示的形状”。因此,我们需要创建一个接口Shape: in ...
   GOF《设计模式》一书对Facade模式是这样描述的:        为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。        大致意思是说:使用一种比原有方式更简单的办法与系统交互。例如,我们把一个很文件的文件,放在了第二抽屉里,而第二个抽屉的钥匙放在了第一个抽屉里,我们要想取出这个文件,第一步肯定要拿到第一个抽屉的钥匙,然后打开它再拿出第二个抽屉的钥匙,最后打开第二个抽屉取出文件。        我就上面说的那个情形写一下实现代码,首先我们要实现二个子系统,呵呵,把抽屉比喻成系统,有点夸张了(DrawerOne、DrawerT ...
介绍 eclipse 3.4 代号为ganymede (G anymede (英语发音"GAN uh meed")为最大的木星已知卫星,也是第七颗发现的木星卫星,在伽利略发现的卫星中离木星第三近,在希腊神话中 Ganymede是一个特洛伊美人的男孩(一个美少男),被宙斯带去给众神斟酒)。   1,面包屑 其实就是当前类到项目(project)的路径,其中包括包和文件夹。 另外,使用者还可以自由地在同一路径下的某个节点处,纵向切换到其他元素。     在节点所在位置做一些操作,比如在同级新增一个类   纵向切换元素   2,针对有问题的代码,只要鼠标移动上去,就 ...
【6月25日 CSDN 付江/编译】国外开发者博客中有一篇有趣的文章,将程序员按水平像软件版本号那样划分为不同的版本。相对于在招聘时分为初级,中级,高级程序员,直接表明需要某种语言N版本的程序员或许更方便直接。根据 ...
1:在action中定义的变量,在jsp页面中显示用:<s:property value="变量名" /> 2:在页面中实现自动增加的序号用iterator的statuts的index属性 eg: <s:iterator value="#request.inOutAccountList" id="data" status="listStat"> <s:property value="#listStat.index+1"/> </s:iterator> ...
回顾20世纪晚期--准确地说是1997年,OMG组织(Object Management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划--就像建筑工人多年来所使用的建筑设计图一样。 到了21世纪 --准确地说是2003年,UML已经获得了业界的认同。在我所见过的专业人员的简历中,75%都声称具备UML的知识。然而,在同绝大多数求职人员面谈之后,可 ...
提高hibernate性能 文章出处:http://blog.csdn.net/tianyawudie/archive/2008/06/06/2517233.aspx 在一个拥有单独业务层的应用中,业务层必须在返回之前,为web层“准备”好其所需的数据集合。这就意味着 业务层应该载入所有表现层/web层所需的数据,并将这些已实例化完毕的数据返回。通常,应用程序应该 为web层所需的每个集合调用Hibernate.initialize() (这个调用必须发生咱session关闭之前); 或者使用带有FETCH 从句,或FetchMode.JOIN 的Hibernate查询, 事先取得所有的数据集 ...
Global site tag (gtag.js) - Google Analytics