策略模式

这种模式如果不用面向对象的思想的话,也就是

case  Type of

  1:doCreditCardPayment();

  2:doCheckPayment()

end;

然后在doCreditCardPayment中复制一段其它支付方式的代码拷到这个过程中,就搞定了!

但以后如果需要新增加一种付款方式的话,您必须要打开程序,添加某过程,编译。然后进行整体业务流程的测试。

往往程序员在修改主系统时会很头痛的,说不定改了哪部分会导致整体程序出问题。

基于上述原因,我们在想,能不能在不修改主系统的前提下加上这个功能?

我们一般是这样做:

1.先在主系统做一个基类,类似于下述的TPayment,把付款业务的共同代码出来

2.我们就要开发子模块(使用BPL,对于为什么不用DLL,前面有BLOG讲述,在此不再详述),在BPL中uses 主系统的单元,向下继承着写就行了,这样就有点插件的感觉了。

3.当处理到某订单时,可根据订单的付款类型的字符串创建对象,并调用处理方法。

下面程序并未将子类分离至Bpl中,不过应该是很简单的!

这里以TForm类做为TestUnit来测试!

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值