设计模式之工厂模式

来源:互联网 发布:ajax json 解析 编辑:程序博客网 时间:2024/06/06 02:30
1、工厂模式家族
        简单工厂模式、工厂方法模式、抽象工厂模式

2、什么是工厂模式?
       工厂模式是由一个工厂对象决定创建出哪一个具体实例,简单工厂模式是工厂模式家族中最简单最常用的一种


一、简单工厂模式

举例说明:

    public static Operation createOperate(string operate)    {        Operation oper = null;        switch (operate)        {            case "+":                {                oper = new OperationAdd();                break;                }            case "-":                {                oper = new OperationSub();                break;                }            case "*":                {                oper = new OperationMul();                break;                }            case "/":                {                oper = new OperationDiv();                break;                }        }        return oper;    }    }<span style="font-family:SimSun;"></span>


调用工厂,需要createOperator("/"),就能返回除法运算符。
  优点:客户端不需要修改代码。
  缺点: 当需要增加新的运算类的时候,不仅需新加运算类,还要修改工厂类,违反了开闭原则。


二、工厂方法模式


这个和简单工厂有区别,简单工厂模式只有一个工厂,工厂方法模式对每一个产品都有相应的工厂

  好处:增加一个运算类(例如N次方类),只需要增加运算类和相对应的工厂,两个类,不需要修改工厂类。

  缺点:增加运算类,会修改客户端代码,工厂方法只是把简单工厂的内部逻辑判断移到了客户端进行。


0 0