设计模式之简单工厂模式

简单工厂模式


简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

    

简单工厂模式实例:

抽象运算类

package com.hml.factory.simple;

public abstract class Operation {

    private int numberA;
    private int numberB;

    public int getNumberA() {
        return numberA;
    }

    public void setNumberA(int numberA) {
        this.numberA = numberA;
    }

    public int getNumberB() {
        return numberB;
    }

    public void setNumberB(int numberB) {
        this.numberB = numberB;
    }

    public abstract int getResult();
}

 加法运算类:

package com.hml.factory.simple;

public class AddOperation extends Operation {

    public int getResult() {
        return getNumberA() + getNumberB();
    }

}

减法类:

package com.hml.factory.simple;

public class SubOperation extends Operation {

    public int getResult() {
        return getNumberA() - getNumberB();
    }

}

工厂类:

package com.hml.factory.simple;

public class OperationFactory {
    public static Operation createOperate(String operate) {
        if ("+".equals(operate)) {
            return new AddOperation();
        }

        if ("-".equals(operate)) {
            return new SubOperation();
        }
        return null;
    }
}

 类图:

优点

创建对象时通过一个标识,就可以获取希望得到的对象,有助于对象的管理
 
缺点

每增加一个类,需要去修改工厂类,违背开放封闭原则,如果工厂类需要创建的对象很多,则工厂类会变的很臃肿

 

posted @ 2015-06-30 21:41  天之涯0204  阅读(201)  评论(0编辑  收藏  举报