Java设计模式之模板方法模式
1) AbstractClass(抽象类):定义了一到多个的抽象方法,以供具体的子类来实现它们;而且还要实现一个模板方法,来定义一个算法的骨架。该模板方法不仅调用前面的抽象方法,也可以调用其他的操作,只要能完成自身的使命。
2) ConcreteClass(具体类):实现父类中的抽象方法以完成算法中与特定子类相关的步骤。
AbstractClass.java
/**
* 东北电力大学因特雷工作室版权所有
* 开发项目组:因特雷工作室JAVA组开发
* 网址:http://itl.nedu.edu.cn
* JAVA组QQ开发群:37523769
* 联系请注明!!!
* 谢谢您的使用!!!!!!!
* 文件创建时间:2010年 2010-1-4月 下午04:13:43日
*/
package com.amly.pattern;
/**
* 类创建时间:2010年 2010-1-4月 下午04:13:43日
* @author wamly
*
*/
public abstract class AbstractClass {
/**
* 模版方法,类似HttpServlet中的service方法
* 东北电力大学因特雷工作室JAVA组
* 文件创建时间:2010年 2010-1-4月 下午04:14:39日
*/
public final void templateMethod(String methodName) {
if("op1".equals(methodName)) {
doOperation1(methodName);
}
if("op2".equals(methodName)) {
doOperation2(methodName);
}
}
protected abstract void doOperation1(String methodName);
protected abstract void doOperation2(String methodName);
}
ConcreteClass.java
/**
* 东北电力大学因特雷工作室版权所有
* 开发项目组:因特雷工作室JAVA组开发
* 网址:http://itl.nedu.edu.cn
* JAVA组QQ开发群:37523769
* 联系请注明!!!
* 谢谢您的使用!!!!!!!
* 文件创建时间:2010年 2010-1-4月 下午07:11:33日
*/
package com.amly.pattern;
/**
* 类创建时间:2010年 2010-1-4月 下午07:11:33日
* @author wamly
*
*/
public class ConcreteClass extends AbstractClass {
/* (non-Javadoc)
* @see com.amly.pattern.AbstractClass#doOperatio
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
JAVA序列化的两种方式
//大家都知道Serializable是一个mark interface,告诉JVM这个对象可以被转换成二进制流来传输.
//Serializable 在我们实现这个接口的时候,我们可以使用4个私有方法来控制序列化的过程:
//我们来看一个例子:
public class FooImpl implements java.io.Serializable
{
pr ......
前些时候,把《Thinking in Java》中异常这一章翻出来再次研读,本人有些收获,并且有些观点和作者观点不太一致,共享之
1.异常的定义
一个系统中定义异常应遵循如下几个原则:
a. 系统中如果某个模块功能比较单一,建议将所有异常放在一个package内;如果某个模块有很多子模块, ......
1.
super是调用父类的构造函数
2.
this调用的同类的构造函数.
3.
3.1
synchronized关键字的作用域有二种
3.1.1
是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能 ......