通过模版方式模式进行框架设计


最近在看 Mina的源代码。结合之前使用过的一些,诸如Structs,Zend,JUint等等框架,对框架的基本实现模式有了一点认识。
例如使用structs2时,需要继承ActionSupport类并实现它的execute()的方法。这就是典型GoF的模板方法模式。

首先看看下面模板方法的类图:


父类AbstractClass定义了两个抽象方法Operation1,Operation2和一个普通方法TemplateMethod。
这个普通方法会有类似如下的语句:

void TemplateMethod(){
     PrimitiveOperation1();
     PrimitiveOperation2();
}


Operation1和Operation2是抽象方法,未实现。
它的子类ConcreteClass实现了这两个抽象方法,并没有重写TemplateMethod方法。
这就是把AbstractClass比作ActionSupport,而ConcertedClass就是我们自己定义的一个类并继承父类,然后重载抽象方法。

那么,当框架启动时就会进行如下调用:

public static void main(String[] args){
     AbstractClass abClass=new ConcreteClass();  //实际可能是通过配置文件获得具体实现类的类名,如structs的配置文件
     abClass.TemplateMethod();
}


通过这种方式,就可以实现由框架定义规则并调用而实际使用的用户只需要写具体的实现就可以了。
那么,通过这种方式一个基本的框架就跃然纸上了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值