抽象工厂模式
优点:
如IFactory factory=new AccessFactory(),在一个应用中只需要初始化一次,这就使得改变应用的时候变得非常容易;其次它让具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操纵实例。
缺点:
再添加新功能的时候代码量维护比较大
简单工厂模式
抛弃IFactory、AccdessFactory....取而代之的是定义DataAccess类,内部用switch实例化不同的实例,但缺点是增加其他数据库类型的话还要加case
用反射+抽象工厂的模式
Assembly。Load("抽象工厂模式").CreateInstance("抽象工厂模式.Sqlserver")==Assembly。Load(当前程序集的名称).CreateInstance(当前命名空间名称)
用反射+配置文件
如<add key="DB" value="Sqlserver"/>