请各位设计模式高手指点!

08-01-11 ukong
各位达人:

我最近有这样一个需求,需要做一个工资管理模块.里面有个功能是晋级的.

晋级的条件是动态的,写在数据库里的.比如可能的晋级条件有

1.至2008工作年限满30年,今年自动晋升一档次

2.在同一级别连续干2年,自动晋升一档次

3.在同一职务上干5年,自动提升该职务对应级别的一个级别(比如厅长可能对应4,5,6三个级别,如果是6级,则提升到5级);

....

条件很多,而且可能动态增删的.我想了想,有点象防火墙的控制访问列表.

我最开始想用修饰器模式,后来想了想,这个方式不行.因为晋级条件是动态的,而且数目众多.

我想问的问题是,设计到动态匹配时,采用什么模式好.

---------请大家指点迷津,我就要动手编码了,还是一片茫然.

[该贴被ukong于2008-01-11 12:04修改过]

banq
2008-01-11 17:40
动态过滤器,可以参考JiveJdon中对帖子输出的动态过滤器模式,通过后台管理界面可以动态加入JavaBean过滤器,可以定制Javabean中字段的值,这些非常适合算法之类的动态管理。

如果需要对Javabean的方法进行定制,则考虑AOP。

Java已经进入一个动态组件的阶段。

ukong
2008-01-11 20:45
今天查了些资料,说可以利用规则引擎,不知道bq大哥说的跟这是不是一回事情呢

banq
2008-01-13 17:28
两个不同方向:

我提供的是一种能够灵活扩展的具体架构技术,可能和java语言平台有关,和你这个具体业务无关。

而规则引擎则是和业务相关的重用技术,当然如果规则引擎+动态组件技术将十分完美和Cool

猜你喜欢