设计模式-创建型模式:抽象工厂 AbstractFactory

对象创建转移到了工厂里面,在工厂方法的基础上,实现了一个工厂多个职能,方便横向扩展,在工厂职责稳定的情况下使用,多用于产品的扩展,数据的切换



抽象工厂模式

对象创建转移到了工厂里面,在工厂方法的基础上,实现了一个工厂多个职能,方便横向扩展,在工厂职责稳定的情况下使用,多用于产品的扩展,数据的切换

缺点:不能扩展工厂职责

举例:

接口代码

 public interface IServer
    {
        void Do();
    }

抽象方法

public abstract class BaceServer
    {
        public abstract IServer Z();
        public abstract IServer S();
        public abstract IServer C();
        public abstract IServer G();
    }

继承接口的类

     public class SqlC:IServer
    {
        public void Do()
        {
            Console.WriteLine("执行Sql 查方法");
        }
    }
    public class SqlG:IServer
    {
        public void Do()
        {
            Console.WriteLine("执行Sql 改方法");
        }
    }
    public class SqlS:IServer
    {
        public void Do()
        {
            Console.WriteLine("执行Sql 删方法");
        }
    }
    public class SqlZ:IServer
    {
        public void Do()
        {
            Console.WriteLine("执行Sql 增方法");
        }
    }

抽象工厂代码

 public class SqlFactory:BaceServer
    {
        public override IServer Z()
        {
            return new SqlZ();
        }
 
        public override IServer S()
        {
            return new SqlS();
        }
 
        public override IServer C()
        {
            return new SqlC();
        }
 
        public override IServer G()
        {
            return new SqlG();
        }
    }

调用

 BaceServer server = new SqlFactory();
 IServer iserver = server.C();
 iserver.Do();

结果

http://owfile.aiyouhe.com/Upload/Img/278ac950-72ce-42da-98f3-765056bbdc12.png

>