設計模式(二)簡單工廠模式
阿新 • • 發佈:2018-11-13
簡單工廠模式:
用一個單獨的類來做創造例項的過程。例如加減乘除運算,可以將這些類抽象成一個基類,然後繼承,實現自己的功能,如果有其他的類要建立,只需要新建一個類,在創造例項的類中加一種情況。
類圖:
選自《大話設計模式》
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()); } }
總結:簡單工廠模式的最大優點在與工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。但是簡單工廠模式違背了開放—封閉原則。增加一個類的時候,需要去改變創造例項的類