• <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://www.newhan.cn/zhishi/a/1677725693103370.html

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

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

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

            標簽:模式   工廠
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 中文精品无码中文字幕无码专区| 国产黄色三级三级看三级| 国产精品一二二区视在线| 精品亚洲男人一区二区三区 | 国产又黄又硬又粗| 国产99久久亚洲综合精品西瓜tv| 强行糟蹋人妻hd中文| 熟妇人妻无乱码中文字幕真矢织江| 久久不卡精品| 国产一区二区不卡精品视频 | 国产免费一区二区不卡| 丰满少妇被猛烈进入av久久| 97se亚洲综合自在线| 亚洲男人在线无码视频| 久久亚洲国产精品日日av夜夜 | 中国熟女仑乱hd| 成人无套少萝内射中出| 日韩精品久久久肉伦网站| 亚洲精品在线+在线播放| 日本在线视频www色影响网站| 久久国内精品自在自线91| 在线播放深夜精品三级| 午夜在线不卡| 亚洲午夜福利精品一二飞| 国产无遮挡猛进猛出免费软件| 亚洲中文字幕有综合久久| 国产久9视频这里只有精品| 少妇激情av一区二区三区 | 国产一区二区三区小说| 精品日韩av在线播放| 无码中文字幕乱码一区| 国产精品最新免费视频| 中国老太婆video| 被喂春药蹂躏的欲仙欲死视频| 在线免费观看| 天堂资源在线| 国产精品综合一区二区三区| 成年美女黄网站色大片免费看| 亚欧洲乱码视频在线专区| 日韩在线观看中文字幕一区二区| 国产在线98福利播放视频|