動態(tài)網(wǎng)站開發(fā)大賽即刻搜索引擎入口
設計模式-簡單工廠
簡單工廠模式是一個集中管理對象創(chuàng)建,并根據(jù)條件生成所需類型對象的設計模式,有助于提高代碼的復用性和維護性,但可能會導致工廠類過于復雜且違反開閉原則。
抽象提取理論:
- 封裝對象創(chuàng)建過程
- 解耦客戶端與產(chǎn)品類
- 控制程序擴展性
代碼需求:需要實現(xiàn)一個計算器功能,輸入運算符號和兩個數(shù)字進行計算。你應該如何實現(xiàn)呢?
簡單工廠實現(xiàn)
代碼結(jié)構(gòu)圖
- 基類:運算類
- 實現(xiàn)類:加法類,乘法類,減法類,除法類
- 工廠類:簡單工廠類
基于代碼結(jié)構(gòu)圖實現(xiàn)代碼,以下代碼只創(chuàng)建兩個實現(xiàn)類。
基類:
/*** 運算類-基類*/
public abstract class Operation {/*** 計算方法*/abstract double getResult(double num1,double num2);
}
實現(xiàn)類-加法:
public class Addition extends Operation{@Overridedouble getResult(double num1, double num2) {return num1 + num2;}
}
實現(xiàn)類-減法:
public class Subtraction extends Operation{@Overridedouble getResult(double num1, double num2) {return num1 - num2;}
}
工廠類:
public class Factory {public Operation createOperate(String str){switch (str){case "+":return new Addition();case "-":return new Subtraction();default:return null;}}
}
客戶類:
public class FactoryDemo {public static void main(String[] args) {// 創(chuàng)建工廠Factory factory = new Factory();Operation operate = factory.createOperate("+");System.out.println("加法計算結(jié)果:" + operate.getResult(10, 10));Operation operate2 = factory.createOperate("-");System.out.println("減法計算結(jié)果:" + operate2.getResult(10, 10));}
}