【设计模式基础】创建型模式 - 3 - 简单工厂(Simple Factory)
2013-12-31 23:55
621 查看
1. 模式意图
简单工厂根据提供给它的数据,返回可能类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。(简单工厂实际上不是GoF设计模式中的一个)
工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅是消费对象。
但系统扩展困难,一旦添加新产品就不得不修改工厂逻辑。
2. 模式定义
工厂类(LightSimpleFactory):工厂类在客户端的直接控制下(Create方法)创建产品对象;
抽象产品(Light):定义简单工厂创建的对象的父类或它们共同拥有的接口;可以是一个类、抽象类或接口;
具体产品(BulbLight,TubeLight):定义工厂具体加工出的对象;
3. 模式实现
3.1 C#实现
using System; public abstract class Light { public abstract void TurnOn(); public abstract void TurnOff(); } public class BulbLight : Light { public override void TurnOn() { Console.WriteLine("Bulb Light is Turned on"); } public override void TurnOff() { Console.WriteLine("Bulb Light is Turned off"); } } public class TubeLight : Light { public override void TurnOn() { Console.WriteLine("Tube Light is Turned on"); } public override void TurnOff() { Console.WriteLine("Tube Light is Turned off"); } } public class LightSimpleFactory { public Light Create(string LightType) { if(LightType == "Bulb") return new BulbLight(); else if(LightType == "Tube") return new TubeLight(); else return null; } } public class Client { public static void Main() { LightSimpleFactory lsf = new LightSimpleFactory(); Light l = lsf.Create("Bulb"); l.TurnOn(); l.TurnOff(); Console.WriteLine("-----------------"); l = lsf.Create("Tube"); l.TurnOn(); l.TurnOff(); } }
4. 模式应用
4.1 3D引擎创建不同的render
Simple Factory:RenderFactoryAbstract Product: Render
Concrete Products:OpenGLRender, D3DRender
相关文章推荐
- 设计模式学习之简单工厂(Simple Factory,创建型模式)(1)
- 设计模式--简单工厂(Simple Factory)
- Java设计模式——简单工厂(Simple Factory)
- 设计模式案例--工厂模式--简单工厂(静态工厂)(simplefactory)
- 设计模式:简单工厂(Simple Factory)
- 设计模式的征途—2.简单工厂(Simple Factory)模式
- 设计模式(2)-创建型-简单工厂,工厂,抽象工厂模式(Factory)
- 创建型模式-简单工厂方法(simple_factory)
- 设计模式(1)の创建型の工厂方法模式(Factory Method)の(普通|简单)工厂模式
- 设计模式简单工厂模式(SimpleFactoryPattern)
- 设计模式学习笔记三:简单工厂(Simple Factory)
- 设计模式(2)-创建型-简单工厂,工厂,抽象工厂模式(Factory)
- JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
- 设计模式之简单工厂(Simple Factory)
- 设计模式(2)-创建型-简单工厂,工厂,抽象工厂模式(Factory)
- 设计模式(九)[简单工厂(Simple Factory)模式]
- JAVA设计模式——简单工厂(Simple Factory)模式
- 设计模式之SimpleFactory(简单工厂)
- 【设计模式基础】创建型模式 - 4 - 工厂方法(Factory Method)
- 设计模式(2)-创建型-简单工厂,工厂,抽象工厂模式(Factory)