抽象工厂模式
前面我们介绍了简单工厂模式和工厂方法模式,现在简单的回顾一下: 简单工厂模式是充分利用面向对象的三大特性,将操作要素和操作方法对象化,通过定义工厂方法,决定实例化哪个对象。但简单工厂模式不利于程序的扩展,在需要扩展的时候需要将整个工程类开放,不符合开放-封闭原则。 在简单工厂模式的基础上,我们通过继承接口实现个操作对象的实例化,各具体操作类各自实现相应的方法,只需实现工厂类接口方法即可,在对功能进行扩展时,不需要对工厂类接口进行修改,只需新增操作类和实例化自己的工厂类即可。 那我们为什么需要抽象工厂模式呢? 当我们项目的数据库需要从sqlserver改成oracle时,当初用抽象工厂模式设计的优点就体现出来了。 抽象工厂模式:创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 以数据访问为例: 1 interface IUser 2 { 3 void Insert(User user); 4 5 User GetUser(int id); 6 } 1 class SqlserverUser : IUser 2 { 3 public void Insert(User user) 4 { 5 Console.WriteLine("在Sqlserver中给User表增加一条记录"); 6 } 7 8 public User GetUser(int id) 9 { 10