C#设计模式之简单工厂模式(Simple Factory)
2016-05-20 13:41
337 查看
1. 概述
简单工厂模式就是将一个类的实例化交给一个静态工厂来执行。2. 使用频率
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SimpleFactory { class Program { static void Main(string[] args) { Product product = Factory.CreateProduct(); Console.WriteLine("Created {0}", product.GetType().Name); Console.ReadLine(); } } }
View Code
5. 总结
优点:职责单一,实现简单,且实现了客户端代码与具体的实现解耦。
工厂类是模式主体,包含了必要的逻辑判断,根据外界的给定的信息来创建哪个具体对象。
通过工厂类,摆脱了直接创建对象的局面,且不比管这些对象是如何创建的。
明确了各自的职责和权益,有利于整个软件体系结构的优化。
缺点:
由于工厂类集中了类所有类的创建实例的逻辑,违反了高内聚责任分配原则; 将类创建实例逻辑放在工厂类中,它所创建的类是事先考虑到的,如果要创建新的类的话,则要修改工厂类。因此它违背开放封闭原则。
当系统中具体产品不断增多时,工厂类会要根据不同条件创建产品,导致条件判断逻辑和具体的产品交错在一起,对系统的扩展和维护不利。
使用场景:
工厂类创建对象类比较少。
系统中只知道传入工厂类参数,对于如何因创建对象不关心。
因简单工厂很容易违反了高内聚原则,一般只在简单情况下应用。
相关文章推荐
- C# 自己用到的几个参数转换方法
- C#技术开发
- C#技术开发
- C#windows service服务
- (C#) 使用Nullable类型
- C#多线程那点事——信号量(Semaphore)
- C#/.NET 基础学习
- C#技术开发中心
- [C#] .NET4.0中使用4.5中的 async/await 功能实现异
- 浅谈对C#-lock()的理解
- c#中垃圾回收机制
- c#验证码
- C# winform 程序独立运行(脱离 .NET Framework运行,绿色运行)
- C# ~ 从 XML 到 Linq 到 Linq to XML
- C# ~ 从 XML 到 Linq 到 Linq to XML
- C# 模拟 鼠标 键盘操作
- C# protobuf的使用方法
- C# Math.Round
- c#打印(转)
- c# XML省市联动