溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java的簡(jiǎn)單工廠模式怎么用

發(fā)布時(shí)間:2021-06-25 12:03:32 來(lái)源:億速云 閱讀:123 作者:chen 欄目:編程語(yǔ)言

這篇文章主要介紹“Java的簡(jiǎn)單工廠模式怎么用”,在日常操作中,相信很多人在Java的簡(jiǎn)單工廠模式怎么用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java的簡(jiǎn)單工廠模式怎么用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

簡(jiǎn)單工廠模式

簡(jiǎn)單工廠模式

  • 簡(jiǎn)單工廠模式是屬于創(chuàng)建型模式,是工廠模式的一種。 簡(jiǎn)單工廠模式是由一個(gè)工廠對(duì)象決定創(chuàng)建出哪一 種產(chǎn)品類 的實(shí)例。簡(jiǎn)單工廠模式是工廠模式家族中最簡(jiǎn)單實(shí)用的模式

  • 簡(jiǎn)單工廠模式:定義了一個(gè)創(chuàng)建對(duì)象的類,由這個(gè)類來(lái) 封裝實(shí)例化對(duì)象的行為(代碼)

  • 在軟件開(kāi)發(fā)中,當(dāng)我們會(huì)用到大量的創(chuàng)建某種、某類或者某批對(duì)象時(shí),就會(huì)使用到工廠模式.

舉個(gè)例子

我家是農(nóng)村的,我老爸老媽就是個(gè)農(nóng)民種水果的,地里面有蘋果,梨,葡萄等,你們這些城里娃,想吃新鮮水果怎么辦呢?你們只能也只能去超市買了,這時(shí)候這個(gè)超市就相當(dāng)于一個(gè)工廠了,客戶不需要關(guān)注水果是怎么樣長(zhǎng)成的,只需要在超市買就行了

代碼實(shí)現(xiàn)

  • 創(chuàng)建一個(gè)水果接口

    /**
     * 
     * @ClassName: Fruits
     * @Description: TODO(我們都是農(nóng)村的,自己種的水果,肯定很香,無(wú)公害,城里面水果不敢吃,大部分都是打農(nóng)藥,催熟,膨大劑,美化粉)
     * @author wangmeng
     * @date 2021年5月11日
     */
    public interface Fruits {
    
    	public void buildFruits();
    
    }


  • 接口實(shí)現(xiàn)

    • 蘋果地

      public class Apple implements Fruits {
      	@Override
      	public void buildFruits() {
      		System.out.println("農(nóng)村人套路少,老實(shí),種的蘋果很脆很甜,沒(méi)有化學(xué)物質(zhì),賣的還便宜,付出收獲不成正比");
      	}
      
      }


    • public class Pear implements Fruits {
      	@Override
      	public void buildFruits() {
      		System.out.println("農(nóng)村人套路少,老實(shí),自家地種的梨很脆很甜,沒(méi)有化學(xué)物質(zhì),而且還特便宜");
      	}
      
      }


  • 超市工廠

    // 超市工廠
    public class SupermarketFactory {
    
    	//使用 getFruits 方法獲取水果類型的對(duì)象
    	// 想吃蘋果就給老板說(shuō),我要買帶諸葛家標(biāo)簽牌子的蘋果,無(wú)公害,就對(duì)了
    
    	// 一個(gè)調(diào)用者想創(chuàng)建一個(gè)對(duì)象,只要知道其名稱就可以了。
    	public Fruits getFruits(String fruitsType){
    	      if(fruitsType == null){
    	         return null;
    	      }        
    	      if(fruitsType.equalsIgnoreCase("Apple")){
    	         return new Apple();
    	      } else if(fruitsType.equalsIgnoreCase("Pear")){
    	         return new Pear();
    	      } 
    	      return null;
    	   }
    }


  • 使用超市工廠去買諸葛家標(biāo)簽牌子的蘋果

    public class Test {
    	public static void main(String[] args) {
    		// 使用該工廠,通過(guò)傳遞類型信息來(lái)獲取實(shí)體類的對(duì)象
    		SupermarketFactory supermarketFactory=	new SupermarketFactory();
    
    		Fruits fruits=supermarketFactory.getFruits("Apple");
    
    		fruits.buildFruits();
    
    
    		Fruits fruits1=supermarketFactory.getFruits("Pear");
    
    		fruits1.buildFruits();
    	}
    }


  • 輸出

    農(nóng)村人套路少,老實(shí),種的蘋果很脆很甜,沒(méi)有化學(xué)物質(zhì)
    
    農(nóng)村人套路少,老實(shí),自家地種的梨很脆很甜,沒(méi)有化學(xué)物質(zhì),而且還特便宜


總結(jié)

應(yīng)用實(shí)例:

1、您需要一輛汽車,可以直接從工廠里面提貨,而不用去管這輛汽車是怎么做出來(lái)的,以及這個(gè)汽車?yán)锩娴木唧w實(shí)現(xiàn)。

2、Springboot項(xiàng)目,持久層 換數(shù)據(jù)庫(kù)只需換方言和驅(qū)動(dòng)就可以。

優(yōu)點(diǎn):

1、一個(gè)調(diào)用者想創(chuàng)建一個(gè)對(duì)象,只要知道其名稱就可以了。

2、擴(kuò)展性高,如果想增加一個(gè)產(chǎn)品,只要擴(kuò)展一個(gè)工廠類就可以。

3、屏蔽產(chǎn)品的具體實(shí)現(xiàn),調(diào)用者只關(guān)心產(chǎn)品的接口。

缺點(diǎn):

每次增加一個(gè)產(chǎn)品時(shí),都需要增加一個(gè)具體類和對(duì)象實(shí)現(xiàn)工廠,使得系統(tǒng)中類的個(gè)數(shù)成倍增加,在一定程度上增加了系統(tǒng)的復(fù)雜度,同時(shí)也增加了系統(tǒng)具體類的依賴。這并不是什么好事。

到此,關(guān)于“Java的簡(jiǎn)單工廠模式怎么用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI