日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

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

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

什么是工廠模式

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

簡單的解釋

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

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

代碼解釋

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

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

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

public class AddOperatorAction extends OperatorAction {private String operator="+";/*** 此處僅實現(xiàn)相加運算操作,其它-,*,/ 可實現(xià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ī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("簡單工廠模式,簡易計算器\n請輸入第一個數(shù)字:\n");String numberFirst=sc.nextLine();System.out.println("請輸入運算符(+、-、*、/):");String operator=sc.nextLine();System.out.println("請輸入第二個數(shù)字:");String numberSecond=sc.nextLine();OperatorAction oper=factory(operator);System.out.println("運算結(jié)果:"+oper.getResult(numberFirst,numberSecond));} } 復(fù)制代碼

后記

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

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

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

總結(jié)

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

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