最简单的工厂模式
2013-03-28 10:58
281 查看
你想如果有多个类似的类,我们就需要实例化出来多个类。这样代码管理起来就太复杂了。 这个时候你就可以采用工厂方法来封装这个问题。
public interface IProduct { } public class ConcreteProductA : IProduct { } public class ConcreteProductB : IProduct { } public class Factory { public IProduct Create() { // 工厂决定到底实例化哪个子类。 return new ConcreteProductA(); } }
那么再延伸下,如果我要生产B怎么办
一般我们会想到,加入参数,好,说到参数,你想怎么加,呵呵,设计模式的作者给我一个例子,我觉得非常好,如果我们一般人,我想多数这么做
public IProduct Create(IProduct product) { //判断B是否实现了接口 //B b = new B(); //if (b.GetType().GetInterface("ISay") != null) //{ // //如果实现了接口“ISay”,... //} // 工厂决定到底实例化哪个子类。 }
但是我觉得作者这里给出了另外一种思维模式,让我们看看
public enum Category { A, B } public static class ProductFactory { public static IProduct Create(Category category) { switch (category) { case Category.A: return new ConcreteProductA(); case Category.B: return new ConcreteProductB(); default: throw new NotSupportedException(); } } }
并不是说这样非常好,但是这种思想还是值得在某些地方借鉴
相关文章推荐
- 设计模式(1)の创建型の工厂方法模式(Factory Method)の(普通|简单)工厂模式
- C#设计模式之简单工厂篇(转载)
- Java设计模式值简单工厂设计模式
- 【重读设计模式】简单工厂模式
- 补充策略模式结构图以及简单工厂模式结构图对比
- 用 Delphi 学设计模式(一) 之 简单工厂篇
- 简单工厂模式和策略模式
- 由简单三层到工厂模式
- 设计模式学习笔记-简单工厂模式
- 一个java实现的简单工厂模式
- 简单工厂模式
- php实现简单工厂模式
- 设计模式实战应用之四:简单工厂模式
- 简单工厂设计模式
- 简单的工厂模式代码
- 设计模式心得笔记--简单工厂和策略模式
- 设计模式系列01:简单工厂模式
- 简单工厂+单例模式
- 1简单工厂模式
- JS模式:又一个简单的工厂模式