日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

设计模式--简单工厂模式

發(fā)布時間:2025/7/14 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式--简单工厂模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是工廠模式

工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。 在工廠模式中,我們在創(chuàng)建對象時不會對客戶端暴露創(chuàng)建邏輯,并且是通過使用一個共同的接口來指向新創(chuàng)建的對象。

簡單的解釋

例我們將肯德基當(dāng)作一個工廠,當(dāng)我們?nèi)c(diǎn)餐,只需要告訴前臺,我要一個漢堡或薯?xiàng)l即可,我們不需要去關(guān)心漢堡是如何制作;
我們點(diǎn)餐的過程相當(dāng)于我們創(chuàng)建一個工廠類,告訴前臺我們要一個漢堡相當(dāng)于把名稱告訴工廠,由工廠去生產(chǎn);
而前臺告訴廚房:一個漢堡,相當(dāng)于由工廠決定我們調(diào)用哪個類、哪個對象,最終廚房把漢堡給前臺,前臺在遞到我們手中,則相當(dāng)于對象實(shí)例化完成;

  • 優(yōu)點(diǎn)
    創(chuàng)建一個對象,只需要知道名稱即可;擴(kuò)展性高,增加產(chǎn)品,只需要增加對應(yīng)的工廠類;
  • 缺點(diǎn)
    每增加一個產(chǎn)品,都需要對應(yīng)的工具類、工廠類;一個工廠只能生產(chǎn)一個產(chǎn)品;當(dāng)產(chǎn)品過多時,一定程序增加了系統(tǒng)的復(fù)雜性;

代碼解釋

實(shí)現(xiàn)一個計(jì)算器類,由輸入兩個數(shù)字、運(yùn)算符,得到結(jié)果;
1、首先聲明一個抽象類,該抽象類只有一個方法,輸入數(shù)字,返回計(jì)算結(jié)果

/*** 運(yùn)算抽像類,只有一個獲取返回結(jié)果的方法*/ public abstract class OperatorAction {/*** 根據(jù)計(jì)算 獲取返回結(jié)果* @param numberFIrst* @param numberSecond* @return*/public abstract Integer getResult(String numberFIrst,String numberSecond);}復(fù)制代碼

2、聲明對應(yīng)的子類,繼承抽像父類,實(shí)現(xiàn)其計(jì)算方法

public class AddOperatorAction extends OperatorAction {private String operator="+";/*** 此處僅實(shí)現(xiàn)相加運(yùn)算操作,其它-,*,/ 可實(shí)現(xiàn)同時的子類進(jìn)行操作* @param numberFIrst* @param numberSecond* @return*/@Overridepublic Integer getResult(String numberFIrst, String numberSecond) {return Integer.valueOf(numberFIrst)+Integer.valueOf(numberSecond);} } 復(fù)制代碼

3、創(chuàng)建一個簡單的工廠,根據(jù)運(yùn)算符去決定實(shí)例化對應(yīng)的類

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("簡單工廠模式,簡易計(jì)算器\n請輸入第一個數(shù)字:\n");String numberFirst=sc.nextLine();System.out.println("請輸入運(yùn)算符(+、-、*、/):");String operator=sc.nextLine();System.out.println("請輸入第二個數(shù)字:");String numberSecond=sc.nextLine();OperatorAction oper=factory(operator);System.out.println("運(yùn)算結(jié)果:"+oper.getResult(numberFirst,numberSecond));} } 復(fù)制代碼

后記

工廠模式在Java開發(fā)中最常見的就是Spring、Hibernate,像Spring的Bean工廠,我們只需要知道bean的name就可以直接調(diào)用,而Hibernate的連接我們同樣從SessionFactory中直接獲取,通過工廠模式降低的藕合,使得在開發(fā)中變的更加容易,高效;

代碼參照:大話設(shè)計(jì)模式
名稱解釋:www.runoob.com/design-patt…

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的设计模式--简单工厂模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。