在简单工厂改进了的抽象工厂中,DataAccess类返回的数据处理的接口类型,在DataAccess类中的Create事件中要实例化实现该借口的数据处理类。按照原先的由简单工厂改进后的抽象工厂模式,则必须要判断数据库类型,然后根据数据库类型实例化具体的数据处理类。这样就增加Select Case判断语句,这倒没什么,重要的我们想改变数据库时改动的地方会很多。如要从SQL Server改成Access,如果我们在做软件时只设计了处理SQL Server 数据库的数据处理类,那么我们就得增加Access数据库的数据处理类(当然这些类也是实现于数据处理接口类的),此外还要在DataAccess类中增加分支判断,是Access数据库则实例化Access数据库数据处理类。而采用配置文件和反射则可以有效避免在DataAccess类中做的改动。这是因为由配置文件可得到数据库类型,由反射可动态实例化数据处理类。