如我的应用是要根据xml中配置来做相应的处理,xml结构如下:<element name="元素名称"  trim="true"/>如果我的应用中出现了element这个元素,我就会根据它的所有属性来判断要做哪些处理,
现在已有的是trim这个属性,而且值为true,那我在碰到这个元素的时候会知道我要把这个元素的值做一个trim处理。但我现在无法预料以后还要增加什么属性,如有可能我以后要增加属性 validate,值为must, option,表示是否必需有值。这种属性会越来越多,但如何使用一种通用的模式来对我以前的应用程序没有影响。
即我可以增加一个属性的处理逻辑,然后在我的配置文件中就增加了这种新的属性的配置。但整个应用逻辑是不变的。

解决方案 »

  1.   

    策略模式,定义统一的处理器,抽象处理方法为:
    void 处理(String value)每一个实现,需要指定所实现的指定key,如trim,即为Trim处理器,validate为Validate处理器工厂模式,根据不同的key返回不同的处理器。由统一处理器,负责事件的分发,根据不同的定义key,寻找相对应的处理器,找到之,即处理。
    如以下代码处理器工厂.get处理器(String key)
    返回之后,即可调用处理器.处理(value)了