您的位置:首页 > 编程语言 > C#

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. 总结

优点:

职责单一,实现简单,且实现了客户端代码与具体的实现解耦。

工厂类是模式主体,包含了必要的逻辑判断,根据外界的给定的信息来创建哪个具体对象。

通过工厂类,摆脱了直接创建对象的局面,且不比管这些对象是如何创建的。

明确了各自的职责和权益,有利于整个软件体系结构的优化。

缺点:

由于工厂类集中了类所有类的创建实例的逻辑,违反了高内聚责任分配原则; 将类创建实例逻辑放在工厂类中,它所创建的类是事先考虑到的,如果要创建新的类的话,则要修改工厂类。因此它违背开放封闭原则。

当系统中具体产品不断增多时,工厂类会要根据不同条件创建产品,导致条件判断逻辑和具体的产品交错在一起,对系统的扩展和维护不利。

使用场景:

工厂类创建对象类比较少。

系统中只知道传入工厂类参数,对于如何因创建对象不关心。

因简单工厂很容易违反了高内聚原则,一般只在简单情况下应用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: