前一段时间根据用户需求写了一个比较灵活的规则设计模型,与大家分享一下。
业务需求:
1.当数据提交的时候,需要校验注册的规则,根据规则执行情况返回相应结果
2.规则用户可维护,包括用户动态注册规则信息,维护规则提示信息、启用停用规则等
应用的技术:
反射、工厂、面向对象等等
一、数据库设计:
设计原则:
1.该规则动态创建并执行
2.规则分为优先级
1 create table T_BURULE 2 ( 3 ITEMID NUMBER(9) not null, 4 PARENTITEMID NUMBER(9), 5 RULECODE VARCHAR2(20), 6 RULENAME VARCHAR2(100), 7 RULECLASS VARCHAR2(100), 8 RULEDESC VARCHAR2(2000), 9 RULEMESSAGE VARCHAR2(500), 10 P1 VARCHAR2(1000), 11 P2 VARCHAR2(1000), 12 P3 VARCHAR2(1000), 13 P4 VARCHAR2(1000), 14 P5 VARCHAR2(1000), 15 RULETYPE NUMBER(9), 16 RULELEVEL NUMBER(9), 17 ENABLE NUMBER(9) 18 ) 19 tablespace IFIS1300000002013 20 pctfree 10 21 initrans 1 22 maxtrans 255 23 storage 24 ( 25 initial 64K 26 next 1M 27 minextents 1 28 maxextents unlimited 29 ); 30 -- Add comments to the columns 31 comment on column T_BURULE.ITEMID 32 is '流水号'; 33 comment on column T_BURULE.PARENTITEMID 34 is '父级流水号'; 35 comment on column T_BURULE.RULECODE 36 is '规则编码'; 37 comment on column T_BURULE.RULENAME 38 is '规则名称'; 39 comment on column T_BURULE.RULECLASS 40 is '规则所在的类'; 41 comment on column T_BURULE.RULEDESC 42 is '规则描述'; 43 comment on column T_BURULE.RULEMESSAGE 44 is '规则提示信息'; 45 comment on column T_BURULE.P1 46 is '参数1'; 47 comment on column T_BURULE.P2 48 is '参数2'; 49 comment on column T_BURULE.P3 50 is '参数3'; 51 comment on column T_BURULE.P4 52 is '参数4'; 53 comment on column T_BURULE.P5 54 is '参数5'; 55 comment on column T_BURULE.RULETYPE 56 is '规则类别'; 57 comment on column T_BURULE.RULELEVEL 58 is '规则优先级'; 59 comment on column T_BURULE.ENABLE 60 is '是否启用规则1启用 0不启用';
二、框架的设计
1 public class RuleBase 2 { 3 #region 成员变量及其函数 4 5 public IDACProduct Dac { get; set; } 6 7 #endregion 8 9 #region 构造函数 10 public RuleBase(IDACProduct dac) 11 { 12 Dac = dac; 13 } 14 #endregion 15 16 #region 公共函数 17 18 #endregion 19 20 #region 私有函数 21 22 #endregion 23 }