摘要: 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构。模式中的角色 1 抽象策略类(Strategy):定义所有支持的算法的公共接口。 2具体策略类(Concre... 阅读全文
posted @ 2013-04-20 23:44 WahsonLeung 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 首先明确一个问题,在某些情况下,有些对象,我们只需要一个就可以了。比如,一台计算机连接到多个打印机上,但是这个计算机上的打印程序只能有一个,因为可能会有多个打印作业同时输出到打印机中,这里就可以通过单例模式来避免这个问题。 简单来说,单例模式的作用就是保证在应用程序的生命周期中,任何一个时刻,单例类的实例只有一个(当然也可以不存在)。单例模式的类图:从上面的类图中可以看出,在单例类中有一个私有的构造函数 Singleton ,有一个声明为public的 GetInstance()的方法返回一个Singleton实例。通过上面的类图不难看出单例模式的特点,从而也可以给出单例模式的定义:单例... 阅读全文
posted @ 2013-04-20 02:45 WahsonLeung 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1、 继承和实现区别 Hashtable是基于陈旧的Dictionary类,实现了Map接口;HashMap是Java 1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)。 2、 线程安全不同 Hashtable的方法是同步的,HashMap是未同步,所以在多线程场合要手动同步HashMap。 3、 对null的处理不同 Hashtable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。即 Hashtable不允许null值其实在编译期不会有任何的不一样... 阅读全文
posted @ 2013-04-19 10:45 WahsonLeung 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 面向对象方法的基本思想如下:1、客观世界中的事物都是对象,对象间存在一定的关系。面向对象方法要求从现实世界客观存在的事物出发并建立软件系统,强调直接以问题域(现实世界)中的事物为中心来思考问题和认识问题,并根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射到问题域,保持问题域中的事物及其相互关系的本来面貌。2、用对象的属性描述事物的数据特征;用事物的操作描述事物的行为特征。3、对象的属性与操作结合为一体,成为一个独立的、不可分的实体,实体对外屏蔽其内部细节。4、通过抽象对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对 阅读全文
posted @ 2013-04-19 08:47 WahsonLeung 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 问题:在面向对象的设计中,经常会遇到有多个对象共同处理同一事件,但是各自对事件的处理权限却有不同的场合,一个比较简单的例子就是逐级审批,组长审批完成后,交给经理审批,经理审批完成交给总监,总监审批完给总裁...比较传统的解决办法就是,由客户端来判断,现在处于哪个阶段,下一步应调用哪个对象的方法,进入哪一个阶段,可是请求的发送者需要维护多个耦合,以处理请求信息的传达。这就存在请求的发送者与多个接收者之间是高耦合。定义:《设计模式》中给它的定义如下:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止意图:C 阅读全文
posted @ 2013-04-17 21:43 WahsonLeung 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/xiaoxuetu Java的内存回收机制 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。因此就有了Java程序员到最后应该去了解JVM,才能写出更高效,充分利用有限的内存的程序。1.Java在内存中的状态首先我们先写一个代码为例子:Person.java 1 package tes... 阅读全文
posted @ 2013-04-15 20:27 WahsonLeung 阅读(421) 评论(0) 推荐(1) 编辑
摘要: Java内存管理机制 在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。 Java 语言对内存管理做了自己的优化,这就是垃圾回收机制。 Java 的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由 GC ( garbage collection)负责自动回收不再使用的内存。 上面是Java 内存管理机制的基本情况。但是如果仅仅理解到这里,我们在实际的项目开发中仍然会遇到内存泄漏的问题。也许有人表示怀疑,既然 Java 的. 阅读全文
posted @ 2013-04-14 14:13 WahsonLeung 阅读(2469) 评论(1) 推荐(0) 编辑