模式说明
简单工厂模式又叫静态工厂模式,但不属于23种设计模式。简单工厂模式是由一个工厂对象决定创建出哪一个产品类的实例。
UML结构图
优点
实现了对责任的分割,隔离了变化,使用了专门的工厂类来创建产品对象。
通过配置文件,可以在不修改人和客户端代码的情况下更换具体的产品类,在一定程度上提高系统的灵活性。
缺点
集中了所有实例的创建逻辑,违反了单一职责原则。
扩展困难,每次添加产品都需要修改工厂类的代码,违反开闭原则,所以适合于产品变动较少的情况。
代码实现
namespace Test
{
public abstract class Product
{
}
public class ConcreteProduct1:Product
{
}
public class ConcreteProduct2:Product
{
}
public class Factory
{
public Product CreateProduct(string arg)
{
switch(arg)
{
case "ConcreteProduct1":
return new ConcreteProduct1();
break;
case "ConcreteProduct2":
return new ConcreteProduct2();
break;
default:
throw new Exception("Type Not Support");
}
}
}
public static class Program
{
public static void Main(string[] args)
{
Factory factory = new Factory();
var product1 = factory.CreateProduct("ConcreteProduct1");
Console.WriteLine(product1);
var product2 = factory.CreateProduct("ConcreteProduct2");
Console.WriteLine(product2);
Console.WriteLine("Success");
}
}
}
标签:Simple,Factory,工厂,ConcreteProduct2,public,ConcreteProduct1,设计模式,class
From: https://www.cnblogs.com/cqpanda/p/16802962.html