多条件需求程序实现的三种方法


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,过程化:新增一种需求,相应增加一种方法,对应调用。

* 对过Switch,据传入的参数调用对应的方法,这些方法可能执行相同的流程,但不可固定下来。

2,对象化:新增一种需求,相应增加一种对象,通过多态来完成调用。核心的代码调控模块可以固定下来。

* 对过Switch,据传入的参数产生相应的对象,接着利用多态将流程固定下来。

3,XML配置化:新增一种需求,相应增加一条配置信息及对应的处理对象,核心代码读取需求并调用。(Spring)

* 无须Switch,配置文件中设置需求与类的关系,将需求读入列表中,将一种需求提出时,直接在配置文件中找到对应的类,调用之。
* 并且对象的更新与需要的对应在配置文件中完成,弹性非常好。
* 如:
//读取类信息填充成下拉表,据选择的值建立相应的类对象
* string mediatype = cbbMediaType.SelectedItem.ToString();
//得到类名
* string factoryDllName = ConfigurationSettings.AppSettings[mediaType].ToString();
//构造类对象
* ImediaFactory factory = (ImediaFactory)Activator.CreateInstance(“MediaLibrary”,factoryDllName).Unwrap();
* Imedia media = factory.CreateMedia();
* media.Play();

实现参见Gmail: 面向配置的程序设计