《大話設計模式》Java程式碼示例(一)之簡單工廠方法
阿新 • • 發佈:2019-02-06
簡單工廠模式(Simple Factory):也叫靜態工廠模式,就是建立一個工廠類,對實現了同一介面的一些類進行例項的建立。
package simplefactory; /** * 簡單工廠方法(Simple Factory) * 簡單運算工廠類 */ public class OperationFactory { public static Operation createOperate(String operate) { Operation operation = null; switch (operate) { case "+": operation = new OperationAdd(); break; case "-": operation = new OperationSub(); break; case "*": operation = new OperationMul(); break; case "/": operation = new OperationDiv(); break; default: throw new RuntimeException("不支援運算!"); } return operation; } }
package simplefactory; /** * 簡單工廠方法(Simple Factory) * Operation運算類 */ public abstract class Operation { public double numberA = 0; public double numberB = 0; public abstract double getResult(); } /** * 加法類 */ class OperationAdd extends Operation { @Override public double getResult() { return numberA + numberB; } } /** * 減法類 */ class OperationSub extends Operation { @Override public double getResult() { return numberA - numberB; } } /** * 乘法類 */ class OperationMul extends Operation { @Override public double getResult() { return numberA * numberB; } } /** * 除法類 */ class OperationDiv extends Operation { @Override public double getResult() { if (numberB == 0) { throw new RuntimeException("除數不能為0!"); } return numberA / numberB; } }
package simplefactory; /** * 簡單工廠方法(Simple Factory) * 客戶端main方法 */ public class Calculator { public static void main(String[] args) { Operation operation; operation = OperationFactory.createOperate("+"); operation.numberA = 20; operation.numberB = 10; double result = operation.getResult(); System.out.println(result); } }