一家银行网站涉及的主要设计模式

1.组合模式
银行金融系统框架这边,我们最常见的就是用配置文件里面的rule来控制统一的代码来实现每个不同国家不同条件下的多样性。 这里的设计思想就是  结构模式下的  组合模式。

组合模式分为  leaf, component, composite, client.
leaf 就是各个不同的被rule控制的字段,逻辑。
component是个抽象存在,和金融系统框架这里不十分贴切,可以忽视。
composite就是ResultSet.
client就是我们最终显示的jsp,html.

2.代理模式。
金融系统框架核心框架就就是以代理模式为基准的。
代理类:
当访问一个请求是,我们会把请求转给一个非常super的Action.金融系统框架ProcessAction.
这个就是代理类。
被代理类:
我们的业务核心逻辑是在ModelHelper类里实现的。所以ModelHelper就是我们的被代理类。
事务控制:
在发起一个请求时候,请求先到金融系统框架ProcessAction, 这时候Action 会实际去上调用ModelHelper 里的 executeLogic方法, 这样Modelhelp就被Action代理使用了。
这里有个关键, 在Action的execute方法里, 在调用ModelHelper方法之前和之后
我们会调用一些Intercepter 类的方法, 这就相当于事务控制了。

所以整个金融系统框架的框架实现理念就非常类似Spring 的Aop.


3.工厂模式。
工厂模式一般都是简单工厂模式。
在金融系统框架里,比如HostAccessor的调用,让它返回一个WSHostAccessor还是BafeHostAccessor还是其他,这里就是简单工厂模式了。
这个模式比较普遍,比如金融系统框架DataSource的搜寻也是。
比如rule的加载就是这个模式,由于太普遍几不多说了。

此外还有适配器模式,
比如在返回类型和实际所需不匹配的时候用。
还有模板模式
,这个太广泛了,比如ProcessAction里面的execute里就定义了这个银行系统框架的design即核心方法们的执行顺序,但是这些方法的具体实现就要到不同的子类里了。

猜你喜欢

转载自dmwdmc.iteye.com/blog/1879146