摘要:模板方法是用得最广泛的设计模式之一,特别是在应用框架中经常用模板方法来实现控制反转(Inversion of Control, IoC)。比如在批处理框架中,每个批处理任务都从框架的层面上都可以分成如下三个步骤:1. 初始化2. 处理3. 结束清理在EL中,BaseEscrowLedgerApp定义了一个process方法,该方法规定了每个EscrowLedgerApp应用的总体处理流程1. init2. validateRequest3. processInternally4. commit5. handleResponseView Code 1 public BaseEscrow...
阅读全文
摘要:工厂模式提供了创建对象的接口,并有子类决定具体初始化那个类。工厂模式将对象的初始化工作推迟到子类进行。举例:Java的Collection Framework中就用到了工厂模式。Collection接口定义了创建产品Iterator的工厂方法iterator()。而子类AbstractList和AbstractSet则分别实现了这个工厂方法。在我参与的一个项目中,需要开发一个批处理程序来处理与银行的对账文件。文件中每条记录代表一种交易类型(Charge,Refund,Chargeback等等).我们设计的批处理程序框架就是读入一个文件,然后逐条处理每个文件记录,最后更新文件处理状态。在设计批处
阅读全文
摘要:责任链模式实现了请求的发送者和请求的接受者的解耦。责任链模式是通过将请求接受者串联成链,并在链上依次传递请求实现的。但位于责任链上的某个接受者能够处理请求,那么请求就不必继续往下传递。注意,请求发送者只知道有个责任链会去处理这个请求,它不知道到底哪个接受者会处理。
阅读全文
摘要:单例模式在Java编程实践中经常用到。单例模式用于保证每个类只有一个实例存在。本文将对Java单利模式进行一个系统深入的介绍。单例模式是为了保证一个类只有一个实例存在。注意,我们所说的每个类只有一个实例存在是相对于一个JVM和一个ClassLoader而言的。由于不同的类装载器装载的类位于不同的命名空间内,所以在同一个JVM还是可以有有不同的类装载器装载的不同的实例。但这些实例是不同的。测试:先建立如下Singleton类:public class Singleton { private static Singleton instance = new Singleton(); ...
阅读全文