国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

            關注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術干貨  > 企業(yè)的運行模式(設計模式之抽象工廠模式)

            企業(yè)的運行模式(設計模式之抽象工廠模式)

            來源:千鋒教育
            發(fā)布人:zyh
            時間: 2023-06-12 14:42:00 1686552120

              前言

              本文主要講述抽象工廠模式,文中使用通俗易懂的案例,使你更好的學習本章知識點并理解原理,做到有道無術。

            企業(yè)的運行模式

              一.什么是抽象工廠模式

              抽象工廠是23種設計模式中創(chuàng)建型模式的一種,抽象工廠是由多個工廠組合而成。

              上一章小編提到的工廠模式只存在一個抽象角色,而抽象工廠是指當有多個抽象角色時使用的一種工廠模式。如果說工廠模式像是一個公司,而抽象工廠模式則是多個公司組合起來的企業(yè)。

              二.生活中的抽象工廠模式

              1.華為

              華為手機、華為電腦是我們所熟悉的,生產手機的話咱們需要一個工廠,專門生產手機相關的配件;生產華為電腦也需要有對應的工廠,專門生產電腦相關的配件。而多個工廠生成的產品都是華為產品,整體就像是設計模式中的抽象工廠。

            1685958699468.image

              2.京東

              京東是咱們國內電子商務領域受消費者歡迎和具有影響力的電子商務網站之一,小編有挺多電子產品都是在京東上面購買的。在線銷售家電、數碼通訊、電腦、家居百貨等等十幾種大類上萬品牌數百萬的產品。每一個大類模塊咱們可以看做是一個工廠,而由多個大類工廠組合而成的京東就像咱們設計模式中的抽象工廠模式了。

            1685958706234.image

              3.中糧集團

              中糧集團是咱們國內知名企業(yè),生產很多食品相關的產品。比如說:大米、食用油、面粉、蜂蜜、堅果等等。一個集團生產如此多的產品,每個產品需要的生產環(huán)境和機械各不相同,所以需要有對應的工廠,比如生產大米的工廠,比如生產食用油的工廠,而擁有多個生產工廠組合而成的集團等同于設計模式中的抽象工廠模式。

            1685958714907.image

              三.抽象工廠模式的實現

              接下來小編以華為的產品手機和電腦來舉例,用抽象工廠模式來實現。先創(chuàng)建一個抽象工廠類華為類和抽象產品接口package ```language

              抽象工廠  

                華為企業(yè)
            */
            public abstract class HuaWei {
            //生產手機的工廠
            public abstract Product createPhone(String type);
            //生產電腦的工廠
            public abstract Product createComputer(String type);
            }
            /*

              抽象產品接口 

            */
            interface Product {
            //返回產品的名字
            String getName();
            }

              再創(chuàng)建四個具體的產品類P30手機類、P40手機類、MateBook 14電腦類和MateBook 15電腦類,都實現抽象產品接口```language 


            再創(chuàng)建四個具體的產品類P30手機類、P40手機類、MateBook 14電腦類和MateBook 15電腦類,都實現抽象產品接口
            ```language
            package com.qianfeng.ran;

            /*
            * @author:江帥
            * 具體產品類
            * P30手機類
            */
            public class P30Phone implements Product {
            @Override
            public String getName() {
            return "P30手機";
            }
            }

            /*
            * @author:江帥
            * 具體產品類
            * P40手機類
            */
            class P40Phone implements Product{
            @Override
            public String getName() {
            return "P40手機";
            }
            }

            /*
            * @author:江帥
            * 具體產品類
            * MateBook 14電腦類
            */
            public class MateBook14 implements Product{
            @Override
            public String getName() {
            return "MateBook 14電腦";
            }
            }

            /*
            * @author:江帥
            * 具體產品類
            * MateBook 15電腦類
            */
            public class MateBook15 implements Product{
            @Override
            public String getName() {
            return "MateBook 15電腦";
            }
            }

              再創(chuàng)建一個具體工廠類華為工廠類并繼承抽象工廠類華為類實現抽象方法 

            package com.qianfeng.ran;

            /*
            * @author:江帥
            *
            * 具體工廠
            * 繼承抽象工廠實現抽象方法的實現類
            */
            public class HuaWeiFactory extends HuaWei {
            /**
            * 生產手機的工廠
            * @param type 手機型號
            * @return 手機對象
            */
            @Override
            public Product createPhone(String type) {
            //根據型號創(chuàng)建對象的手機產品對象并返回
            if("P40".equalsIgnoreCase(type)){
            return new P40Phone();
            }else if("P30".equalsIgnoreCase(type)){
            return new P30Phone();
            }
            //不存在的型號則返回 null 對象
            return null;
            }

            /**
            * 生產電腦的工廠
            * @param type 電腦型號
            * @return 電腦對象
            */
            @Override
            public Product createComputer(String type) {
            //根據型號創(chuàng)建對象的電腦產品對象并返回
            if("MateBook14".equalsIgnoreCase(type)){
            return new MateBook14();
            }else if("MateBook15".equalsIgnoreCase(type)){
            return new MateBook15();
            }
            //不存在的型號則返回 null 對象
            return null;
            }
            }

              最后我們通過抽象工廠模式獲取需要的對象  

            package com.qianfeng.ran;

            /*
            * @author:江帥
            *
            * 客戶端
            */
            public class Demo {
            public static void main(String[] args) {
            //創(chuàng)建華為工廠對象
            HuaWeiFactory huaWeiFactory = new HuaWeiFactory();

            //-------------通過工廠模式獲取P40手機對象--------
            //通過華為工廠對象調用創(chuàng)建手機的方法并傳入型號
            Product p40 = huaWeiFactory.createPhone("P40");
            //執(zhí)行結果:
            //P40手機
            System.out.println(p40.getName());

            //-------通過工廠模式獲取MateBook15電腦對象-------
            //通過華為工廠對象調用創(chuàng)建電腦的方法并傳入型號
            Product mateBook15 = huaWeiFactory.createComputer("MateBook15");
            //執(zhí)行結果:
            //MateBook 15電腦
            System.out.println(mateBook15.getName());
            }
            }

              四.總結

              抽象工廠把具體的對象創(chuàng)建延遲到具體工廠子類中,把對象的創(chuàng)建封裝起來,減少客戶端與具體對象之間的依賴,降低了系統(tǒng)的耦合度,提高的后期的維護性。但是跟工廠模式一樣,添加新的產品需要修改抽象工廠的接口,違背了開閉原則。

            聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
            10年以上業(yè)內強師集結,手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
            免費領取
            今日已有369人領取成功
            劉同學 138****2860 剛剛成功領取
            王同學 131****2015 剛剛成功領取
            張同學 133****4652 剛剛成功領取
            李同學 135****8607 剛剛成功領取
            楊同學 132****5667 剛剛成功領取
            岳同學 134****6652 剛剛成功領取
            梁同學 157****2950 剛剛成功領取
            劉同學 189****1015 剛剛成功領取
            張同學 155****4678 剛剛成功領取
            鄒同學 139****2907 剛剛成功領取
            董同學 138****2867 剛剛成功領取
            周同學 136****3602 剛剛成功領取
            相關推薦HOT