Simple Factory Pattern
2008-01-23 14:59
45 查看
工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态:
简单工厂(Simple Factory)模式
工厂方法(Factory Method)模式
抽象工厂(Abstract Factory)模式
Simple Factory模式实际上不是GoF 23个设计模式中的一员。
namespace FactoryQucikStart
客户端调用:
class Client
{
{
//
// TODO: Add code to start application here
//交给简单工厂创建实例
Light light = LightSimpleFactory.Create("Bulb");//灯泡
light.TurnOn();
light.TurnOff();
light = LightSimpleFactory.Create("Tube");//日光灯
light.TurnOn();
light.TurnOff();
}
}
工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅"消费"产品。简单工厂模式通过这种做法实现了对责任的分割。
缺点:
当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是模式的缺点。因为工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
同时,系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,有可能造成工厂逻辑过于复杂。
另外,简单工厂模式通常使用静态工厂方法,这使得无法由子类继承,造成工厂角色无法形成基于继承的等级结构。
简单工厂(Simple Factory)模式
工厂方法(Factory Method)模式
抽象工厂(Abstract Factory)模式
一、 简单工厂(Simple Factory)模式
Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。Simple Factory模式实际上不是GoF 23个设计模式中的一员。
二、 Simple Factory模式角色与结构:
using System;namespace FactoryQucikStart
客户端调用:
class Client
{
{
//
// TODO: Add code to start application here
//交给简单工厂创建实例
Light light = LightSimpleFactory.Create("Bulb");//灯泡
light.TurnOn();
light.TurnOff();
light = LightSimpleFactory.Create("Tube");//日光灯
light.TurnOn();
light.TurnOff();
}
}
四、 优点与缺点:
优点:工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅"消费"产品。简单工厂模式通过这种做法实现了对责任的分割。
缺点:
当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是模式的缺点。因为工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
同时,系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,有可能造成工厂逻辑过于复杂。
另外,简单工厂模式通常使用静态工厂方法,这使得无法由子类继承,造成工厂角色无法形成基于继承的等级结构。
相关文章推荐
- 小菜学设计模式 工厂设计模式 Simple Factory Pattern
- 解读设计模式----简单工厂模式(SimpleFactory Pattern),你要什么我就给你什么
- 设计模式笔记之工厂模式--简单工厂模式(Simple Factory Pattern)
- 简单工厂模式-Simple Factory Pattern
- C#设计模式(4)-Simple Factory Pattern
- 简单工厂模式 Simple Factory Pattern
- SimpleFactory Pattern,MethodFactory Pattern and AbstrctFactory Pattern
- 解读设计模式----简单工厂模式(SimpleFactory Pattern),你要什么我就给你什么
- C#设计模式(4)-Simple Factory Pattern
- 简单工厂模式(Simple Factory Pattern)
- Simple Factory Pattern
- 工厂模式—简单工厂模式(Simple Factory Pattern)
- 设计模式之八:简单工厂模式(Simple Factory pattern)
- C# 设计模式之Simple Factory Pattern
- (C++实现)——简单工厂模式(Simple Factory Pattern)
- 简单工厂模式 Simple Factory Pattern
- 23种设计模式之-----简单工厂(静态工厂)模式(SimpleFactory Pattern)
- Simple Factory Pattern
- Java设计模式--简单工厂模式【Simple Factory Pattern】
- Simple Factory Pattern 简单工厂模式——《深入浅出设计模式(C#/Java版)》