• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            什么是工廠模式(什么是工廠模式和單例模式)

            更新時間:2023-03-02 10:54:53 閱讀: 評論:0

            工廠模式是我們開發中用的比較多的設計模式,在spring框架到處可以看得到工廠模式,工廠模式屬于創建型的模式,一種批量創建對象的模式。工廠模式又分為簡單工廠模式和抽象工廠模式。

            簡單工廠模式

            1.簡單工廠模式屬于工廠模式的一種,簡單工廠模式是有一個工廠對象決定創建哪一中產品類的實例。

            簡單的工廠模式,定義了一個創建對象的類,這個類來封裝實例化對象的代碼。

            在軟件開發中,當我們用到大量的創建某種,某類或者某一批對象時候就會選擇工廠模式。也叫靜態工廠模式。

            這里我們引入一個制作pizza例子。來演示一下工廠模式。

            這里首先寫一個PIZZA抽象類,prepare方法,各個有所不同需要子類去實現

            public abstract class Pizza { protected String name; public abstract void prepare(); public void bake(){ System.out.println(name+"baking"); } public void cut(){ System.out.println(name+"cutting;"); } public void tName(String name) { this.name = name; }}

            public class CheePizza extends Pizza{ @Override public void prepare() { System.out.println("給只做奶酪披薩,準備原材料"); }}

            public class GreekPizza extends Pizza{ @Override public void prepare() { System.out.println("給只希臘披薩,準備原材料"); }}

            public class PepperPizza extends Pizza { @Override public void prepare() { System.out.println("給只做胡椒披薩,準備原材料"); }}

            定義一個工廠類,用來創建不同口味的Pizza

            public class SimpleFactory { public Pizza createPizza(String orderType){ Pizza pizza = null; System.out.println("使用簡單的工廠模式"); if (orderType.equals("greek")){ pizza = new GreekPizza(); pizza.tName("希臘披薩"); }el if(orderType.equals("chee")) { pizza = new CheePizza(); pizza.tName("奶酪披薩"); }el if(orderType.equals("pepper")){ pizza = new PepperPizza(); pizza.tName("胡椒披薩"); } return pizza; }}

            調用方

            public class OrderSimPizza { SimpleFactory simpleFactory; Pizza pizza = null; public OrderSimPizza(SimpleFactory factory){ tSimpleFactory(factory); } public void tSimpleFactory(SimpleFactory simpleFactory) { String orderType = simpleFactory.getOrderType(); this.simpleFactory = simpleFactory; pizza = simpleFactory.createPizza(orderType); if (pizza !=null){ pizza.prepare(); pizza.bake(); pizza.cut(); }el{ System.out.println("制造pizza失敗"); } }}

            main方法

            public static void main(String[] args) { SimpleFactory simpleFactory = new SimpleFactory(); simpleFactory.tOrderType("greek"); new OrderSimPizza(simpleFactory);}

            如果新增加一個pizza,我只需要修改一下工廠類即可,這也就實現了增加一個品類了。

            工廠方法模式

            披薩項目的新的需求,客戶在點餐時,可以點不同口味的披薩,比如說北京的奶酪披薩,倫敦奶酪披薩,

            如果使用簡單的工廠模式,需要創建不同的工廠類,比如說BJPizzaFactrory ,LDPizzaSimpleFactory等等,從當前的這個案例來說,也是可以的,當時考慮項目的規模和可維護,可擴展性,并不是特別的好,這個時候,就可以考慮工廠方法模式。

            所謂的工廠方法模式,將對象的實例化功能抽象成抽象方法,有具體的子類去實現。

            工廠方法模式,定義一個創建對象的抽象方法,由子類決定要實例化的類,工廠方法模式將對象實例化推遲到子類。

            1.定義一個包含抽象方法的抽象類。

            public class BJOrderPizza extends OrderPizza{ public BJOrderPizza(String orderType) { super(orderType); } @Override public Pizza createPizza(String orderType) { Pizza pizza = null; if (orderType.equals("chee")){ pizza = new BJCheePizza(); }el if(orderType.equals("pepper")){ pizza = new BJPapperPizza(); } return pizza; }}

            2.定義2個子類去繼承這個抽象方法

            public class LDOrderPizza extends OrderPizza { public LDOrderPizza(String orderType) { super(orderType); } @Override public Pizza createPizza(String orderType) { Pizza pizza = null; if (orderType.equals("chee")){ pizza = new LDCheePizza(); }el if(orderType.equals("pepper")){ pizza = new LDPapperPizza(); } return pizza; }}

            public class BJOrderPizza extends OrderPizza{ public BJOrderPizza(String orderType) { super(orderType); } @Override public Pizza createPizza(String orderType) { Pizza pizza = null; if (orderType.equals("chee")){ pizza = new BJCheePizza(); }el if(orderType.equals("pepper")){ pizza = new BJPapperPizza(); } return pizza; }}

            定義一些具體要實現的類

            public class BJCheePizza extends Pizza { @Override public void prepare() { System.out.println("北京的奶酪,準備原材料"); }}

            public class BJPapperPizza extends Pizza { @Override public void prepare() { tName("北京的胡椒披薩"); System.out.println("北京的胡椒披薩,準備原材料"); }}

            public class LDCheePizza extends Pizza { @Override public void prepare() { tName("倫敦的奶酪披薩"); System.out.println("倫敦的奶酪披薩正在準備中"); }}

            public class LDPapperPizza extends Pizza { @Override public void prepare() { tName("倫敦的胡椒披薩"); System.out.println("倫敦的胡椒披薩正在準備中"); }}抽象工廠模式

            1.抽象工廠模式,定義一個interface 用于創建相關的或者有依賴關系的對象簇,而無需指明具體的類

            2.抽象工廠模式,可以將簡單工廠模式和工廠方法模式進行一個結合

            3.從設計層面看,抽象工廠模式就是簡單工廠模式的改進,或者說進一步的抽象。

            4.抽象工廠模式,將工廠抽象成2層,AbsFactory和具體實現的子類,程序員可以根據創建類型使用對應的工廠子類。這樣可以將單個簡單的工廠變成工廠簇,更加有利于代碼的維護和擴展。

            代碼的實現部分

            1.創建一個抽象工廠的接口

            public interface AbsFactory { public Pizza createPizza(String orderType);}

            2.創建抽象工廠的實現類

            public class BJFactory implements AbsFactory{ @Override public Pizza createPizza(String orderType) { Pizza pizza = null; if (orderType.equals("chee")){ pizza = new BJCheePizza(); }el if(orderType.equals("pepper")){ pizza = new BJPapperPizza(); } return pizza; }}

            @Overridepublic Pizza createPizza(String orderType) { Pizza pizza = null; if (orderType.equals("chee")){ pizza = new LDCheePizza(); }el if(orderType.equals("pepper")){ pizza = new LDPapperPizza(); } return pizza;}

            創建調用方,具體實施要創建的類

            public class OrderPizza { private AbsFactory factory; private String orderType; public void tFactory(AbsFactory factory){ this.factory = factory; } public AbsFactory getFactory() { return factory; } public void tOrderType(String orderType) { this.orderType = orderType; Pizza pizza = null; pizza = factory.createPizza(orderType); if (pizza !=null){ pizza.prepare(); pizza.bake(); pizza.cut(); } }}

            主方法的入口

            public static void main(String[] args) { OrderPizza orderPizza = new OrderPizza(); orderPizza.tFactory(new LDFactory()); orderPizza.tOrderType("chee");}

            本文發布于:2023-02-28 21:06:00,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/1677725693103370.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:什么是工廠模式(什么是工廠模式和單例模式).doc

            本文 PDF 下載地址:什么是工廠模式(什么是工廠模式和單例模式).pdf

            標簽:模式   工廠
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 另类 专区 欧美 制服丝袜| 人妻聚色窝窝人体WWW一区| 国产精品成人av电影不卡| 精品国产精品国产偷麻豆| 亚洲国产区男人本色vr| 亚洲欧洲日韩久久狠狠爱| 亚洲综合国产成人丁香五| 亚洲中文字幕久久精品码| 精品人妻中文字幕av| 亚洲一区二区三上悠亚| 国产午夜精品久久精品电影| 久久人人爽爽人人爽人人片av| 专干老肥熟女视频网站| 男女做aj视频免费的网站| 人人人澡人人肉久久精品| 亚洲情综合五月天婷婷丁香| 亚洲国产精品一区二区久| 国产福利在线观看永久视频| 亚洲欧美日韩人成在线播放| 日本另类αv欧美另类aⅴ| 久久天天躁狠狠躁夜夜2020老熟妇| 人妻精品久久无码专区精东影业| 又色又爽又黄的视频国产| 狠狠色噜噜狠狠狠狠777米奇| 亚洲综合精品香蕉久久网| 男人一天堂精品国产乱码| 熟妇人妻av中文字幕老熟妇| 性动态图无遮挡试看30秒| 国产综合色产在线精品| 无码熟熟妇丰满人妻porn| 一区二区三区精品视频免费播放 | 特黄三级一区二区三区| 无码精品人妻一区二区三区中| 欧美综合中文字幕久久| 国产目拍亚洲精品区一区| 狠狠色噜噜狠狠狠狠av不卡| 久久se精品一区精品二区国产| 亚洲高清无在码在线无弹窗| 五月天在线视频观看| AV人摸人人人澡人人超碰| 亚洲区精品区日韩区综合区|