工厂模式 + 反射 ?= 灵活多变的数据库么
由于现实项目中我们难保会客户会更换系统的数据库,这样我们需要把若干数据库各种情况基本上都想到。多种数据库,引出抽象,我们就能在众多数据库的上层抽出一个Factory,由Factory去引导具体实例哪种数据库。
以上其实就是我们今天要说的抽象工厂。那么,反射是什么呢?反射说白了就是,将Factory中的关键变量拿出来,通过一种叫配置文件的东东来将关键变量引出Factory,配置文件更加能够在程序外部通过文本形式打开进行编辑,直接更改关键变量,就能实现程序内部的数据库工厂的实例变化。
IFactory就是上面我们提到过的Factory。
下图,更是将抽象工厂(IFactory)用简单工厂(DataAccess)来实现,也就是将原来分散开的抽象工厂的几个实现(IFactory、SqlseverFactory、AccessFactory)合并到一起,通过选择判断语句关联起来。