设计模式-Simple Factory(简单工厂)
模式说明#
简单工厂模式又叫静态工厂模式,但不属于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");
}
}
}
作者:重庆熊猫
出处:https://www.cnblogs.com/cqpanda/p/16802962.html
版权:本作品采用「不论是否商业使用都不允许转载,否则按3元1字进行收取费用」许可协议进行许可。
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16802962.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南