1. 程式人生 > >設計模式(二)簡單工廠模式

設計模式(二)簡單工廠模式

簡單工廠模式:

用一個單獨的類來做創造例項的過程。例如加減乘除運算,可以將這些類抽象成一個基類,然後繼承,實現自己的功能,如果有其他的類要建立,只需要新建一個類,在創造例項的類中加一種情況。

類圖:

選自《大話設計模式》

public abstract class Operation {

private double numberA;

private double numberB;

public double getNumberA() {

return numberA;

}

public void setNumberA(double numberA) {

this.numberA = numberA;

}

public double getNumberB() {

return numberB;

}

public void setNumberB(double numberB) {

this.numberB = numberB;

}

public abstract double getResult();



}



public class OperationAdd extends Operation {

@Override

public double getResult() {

return this.getNumberA()+this.getNumberB();

}

}



public class OperationFactory {

public static Operation createOperation(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;

default:

break;

}

return oper;

}

}



public class Client {

public static void main(String[] args) {

Operation oper= OperationFactory.createOperation("/");

oper.setNumberA(5);

oper.setNumberB(6);

System.out.println(oper.getResult());



}

}

 

總結:簡單工廠模式的最大優點在與工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。但是簡單工廠模式違背了開放—封閉原則。增加一個類的時候,需要去改變創造例項的類