工廠模式(Factory Pattern)是 Java 中最經常使用的設計模式之一。這種類型的設計模式屬於建立型模式,它提供了一種建立對象的最佳方式。 在工廠模式中,咱們在建立對象時不會對客戶端暴露建立邏輯,而且是經過使用一個共同的接口來指向新建立的對象。html
例咱們將肯德基看成一個工廠,當咱們去點餐,只須要告訴前臺,我要一個漢堡或薯條便可,咱們不須要去關心漢堡是如何製做;
咱們點餐的過程至關於咱們建立一個工廠類,告訴前臺咱們要一個漢堡至關於把名稱告訴工廠,由工廠去生產;
而前臺告訴廚房:一個漢堡,至關於由工廠決定咱們調用哪一個類、哪一個對象,最終廚房把漢堡給前臺,前臺在遞到咱們手中,則至關於對象實例化完成;設計模式
實現一個計算器類,由輸入兩個數字、運算符,獲得結果;
一、首先聲明一個抽象類,該抽象類只有一個方法,輸入數字,返回計算結果bash
/**
* 運算抽像類,只有一個獲取返回結果的方法
*/
public abstract class OperatorAction {
/**
* 根據計算 獲取返回結果
* @param numberFIrst
* @param numberSecond
* @return
*/
public abstract Integer getResult(String numberFIrst,String numberSecond);
}
複製代碼
二、聲明對應的子類,繼承抽像父類,實現其計算方法ide
public class AddOperatorAction extends OperatorAction {
private String operator="+";
/**
* 此處僅實現相加運算操做,其它-,*,/ 可實現同時的子類進行操做
* @param numberFIrst
* @param numberSecond
* @return
*/
@Override
public Integer getResult(String numberFIrst, String numberSecond) {
return Integer.valueOf(numberFIrst)+Integer.valueOf(numberSecond);
}
}
複製代碼
三、建立一個簡單的工廠,根據運算符去決定實例化對應的類工具
public class Action {
public static OperatorAction factory(String operator){
OperatorAction oper=null;
switch (operator){
case "+":
oper=new AddOperatorAction();
break;
}
return oper;
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.print("簡單工廠模式,簡易計算器\n請輸入第一個數字:\n");
String numberFirst=sc.nextLine();
System.out.println("請輸入運算符(+、-、*、/):");
String operator=sc.nextLine();
System.out.println("請輸入第二個數字:");
String numberSecond=sc.nextLine();
OperatorAction oper=factory(operator);
System.out.println("運算結果:"+oper.getResult(numberFirst,numberSecond));
}
}
複製代碼
工廠模式在Java開發中最多見的就是Spring、Hibernate,像Spring的Bean工廠,咱們只須要知道bean的name就能夠直接調用,而Hibernate的鏈接咱們一樣從SessionFactory中直接獲取,經過工廠模式下降的藕合,使得在開發中變的更加容易,高效;ui
代碼參照:大話設計模式
名稱解釋:www.runoob.com/design-patt…spa