设计模式-创建型模式:抽象工厂 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();
结果
>