(1)当RuleBase中有规则添加或删除,利用观察者模式实现,一旦有变动,规则引擎其他组件也做出相应的改变。
(2)学习思想:当一个应用中涉及多个组件,为了实现易扩展,解耦思想。可以利用观察者模式实现。基于易变动的数据结构中加入监听者,监听者依据被监听者的变动动作,定义自己的动作。在监听者内部通知其他组件做出相应改变。实现面向对象的思想。组建之间实现了解藕。
一:被监听数据,也就是规则网络RuleBase的接口定义
1 package com.nonbankcard.commons.doorls.ruleBaseListern; 2 /** 3 * 定义一个核心数据的对象的接口 4 * 5 * @author sxf 6 * 7 */ 8 public interface RuleBase { 9 /** 10 * 添加一个规则 11 * @param rule 12 */ 13 public void addRule(String rule); 14 /** 15 * 删除一个规则 16 * @param rule 17 */ 18 public void removeRule(String rule); 19 /** 20 * 修改一个规则 21 * @param rule 22 */ 23 public void updateRule(String rule); 24 25 }