最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue框架和前后端開發(fā)詳解

 更新時間:2022年01月10日 08:39:55   作者:腦袋不靈光的小白羊  
這篇文章主要為大家介紹了Vue框架和前后端開發(fā),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1. 抽象工廠模式

  • 針對工廠方法模式無法創(chuàng)建一組相關(guān)或相互依賴對象的問題,引入了抽象工廠模式
  • 抽象工廠模式的官方定義

是一種為訪問類提供一個創(chuàng)建一組相關(guān)或相互依賴對象的接口,且訪問類無須指定所要產(chǎn)品的具體類就能得到同族的不同等級的產(chǎn)品的模式結(jié)構(gòu)。

敲黑板,畫重點:

  • 提供一個創(chuàng)建一組相關(guān)或相互依賴對象的接口:相對工廠方法模式,抽象工廠模式的抽象工廠定義了多個創(chuàng)建對象的接口
  • 不同等級的產(chǎn)品:
    • 不同類的產(chǎn)品,又叫不同等級的產(chǎn)品。
    • 工廠方法模式中,只考慮同一等級產(chǎn)品的生產(chǎn),只是同一等級的產(chǎn)品也有很多不同的型號
    • 就像電子廠只生產(chǎn)游戲機,游戲機有多種類型:插卡的游戲機、插光盤的游戲機、便攜式游戲機(玩俄羅斯方塊的那種??)
  • 同族的產(chǎn)品
    • 現(xiàn)實生活中,電子廠不止生產(chǎn)游戲機,還生產(chǎn)電視機、音箱等產(chǎn)品。
    • 這些由一個工廠生產(chǎn)的不同等級的產(chǎn)品,被稱為產(chǎn)品族
    • 因此,同族的不同等級的產(chǎn)品,就是指一個工廠能生產(chǎn)多類產(chǎn)品,與前面的創(chuàng)建一組相關(guān)或相互依賴對象的接口呼應(yīng)
  • 以海爾和TCL兩家公司為例,產(chǎn)品族和產(chǎn)品等級的示意圖如下

在這里插入圖片描述

總結(jié)起來:

  • 抽象工廠模式中,工廠不再只生產(chǎn)一類產(chǎn)品,而是可以生產(chǎn)多類產(chǎn)品
  • 也就是說,工廠可以支持多種類型的對象的創(chuàng)建
  • 調(diào)用者無需指定對象類型(具體的類),就可以通過工廠類創(chuàng)建多種類型的對象

2. UML圖

抽象工廠模式的UML圖如下:

  • 抽象工廠(Abstract Factory):定義了多個創(chuàng)建產(chǎn)品的接口,可以創(chuàng)建多個不同等級的產(chǎn)品
  • 具體工廠(Abstract Factory):實現(xiàn)抽象工廠中的抽象方法,負責(zé)創(chuàng)建具體的產(chǎn)品
  • 抽象產(chǎn)品(Product): 相對工廠方法模式,抽象工廠模式中的產(chǎn)品將是多種等級的。因此,一般會定義多個抽象產(chǎn)品

在這里插入圖片描述

3. 代碼示例

  • 以海爾和TCL兩家公司為例,實現(xiàn)抽象工廠模式

創(chuàng)建兩個抽象產(chǎn)品類

  • 假設(shè)產(chǎn)品只有電視機和空調(diào)兩種等級
public interface TV {
    void play();
}
public interface AirConditioner {
    void heat();
}

創(chuàng)建具體產(chǎn)品類

  • 實現(xiàn)抽象產(chǎn)品接口,為海爾和TCL公司創(chuàng)建具體產(chǎn)品類
public class HaierTV implements TV{
    @Override
    public void play() {
        System.out.println("海爾電視機,銷量全國領(lǐng)先");
    }
}
public class TCLTV implements TV{
    @Override
    public void play() {
        System.out.println("TCL牌電視機,家家都在看的電視機");
    }
}
public class HaierAirConditioner implements AirConditioner{
    @Override
    public void heat() {
        System.out.println("海爾牌空調(diào),制熱效果好,省電又省心~");
    }
}
public class TCLAirConditioner implements AirConditioner {
    @Override
    public void heat() {
        System.out.println("TCL牌空調(diào),制熱效果杠杠的");
    }
}

創(chuàng)建抽象工廠類

  • 有兩個接口,分別用于創(chuàng)建電視機和空調(diào)
public interface AbstractFactory {
    TV getTV();
    AirConditioner getAirConditioner();
}

創(chuàng)建具體工廠類

  • 為海爾和TCL兩家公司,創(chuàng)建具體工廠類,實現(xiàn)具體產(chǎn)品的創(chuàng)建
public class HaierFactory implements AbstractFactory{
    @Override
    public TV getTV() {
        return new HaierTV();
    }
    @Override
    public AirConditioner getAirConditioner() {
        return new HaierAirConditioner();
    }
}
public class TCLFactory implements AbstractFactory{
    @Override
    public TV getTV() {
        return new TCLTV();
    }
    @Override
    public AirConditioner getAirConditioner() {
        return new TCLAirConditioner();
    }
}

4. 總結(jié)

4.1 抽象工廠模式的總結(jié)

  • 創(chuàng)建屬于不同操作系統(tǒng)的視窗構(gòu)件,是抽象工廠模式最早的應(yīng)用。
  • 如 Java 的 AWT 中的 Button 和 Text 等構(gòu)件,在 Windows 和 UNIX 中的本地實現(xiàn)是不同的。

適用場景:

  • 需要創(chuàng)建的對象是一系列相關(guān)或相互依賴的產(chǎn)品族
  • 不同環(huán)境,需要使用不同產(chǎn)品族(系統(tǒng)中有多個產(chǎn)品族,但每次只使用其中的某一族產(chǎn)品)

開閉原則的傾斜性

  • 增加一個產(chǎn)品族,只需要增加一個新的工廠類,無需修改已有的工廠 —— 滿足開閉原則
  • 增加一個新等級的產(chǎn)品,抽象工廠和具體工廠都需要進行修改 —— 不滿足開閉原則
  • 這樣的現(xiàn)象被稱作:開閉原則的傾斜性

4.2 工廠模式的總結(jié)

簡單工廠模式

  • 從長期的編程習(xí)慣總結(jié)出來的簡單工廠模式,需要調(diào)用者傳入對象名稱,才能為其創(chuàng)建指定的對象
  • 新增對象類型時,需要修改已有代碼,違背了開閉原則

工廠方法模式

  • 每個工廠只負責(zé)創(chuàng)建一種類型的對象,是對簡單工廠模式的升級改造
  • 雖然遵守了開閉原則,但是容易工廠類過多,且不支持創(chuàng)建一組相關(guān)或相互依賴的對象的場景

抽象工廠模式

  • 將一組相關(guān)或相互依賴的對象,抽象成產(chǎn)品族,每個工廠負責(zé)創(chuàng)建一個產(chǎn)品族
  • 開閉原則的傾斜性:新增產(chǎn)品族,滿足開閉原則;新增產(chǎn)品,不滿足開閉原則

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • vue獲取路由詳細內(nèi)容信息方法實例

    vue獲取路由詳細內(nèi)容信息方法實例

    獲取路由詳細內(nèi)容信息是我們?nèi)粘i_發(fā)中經(jīng)常會遇到的需求,下面這篇文章主要給大家介紹了關(guān)于vue獲取路由詳細內(nèi)容信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • element-plus/element-ui走馬燈配置圖片及圖片自適應(yīng)的最簡便方法

    element-plus/element-ui走馬燈配置圖片及圖片自適應(yīng)的最簡便方法

    走馬燈功能在展示圖片時經(jīng)常用到,下面這篇文章主要給大家介紹了關(guān)于element-plus/element-ui走馬燈配置圖片及圖片自適應(yīng)的最簡便方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • VUE 解決mode為history頁面為空白的問題

    VUE 解決mode為history頁面為空白的問題

    今天小編就為大家分享一篇VUE 解決mode為history頁面為空白的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 解決vue單頁面多個組件嵌套監(jiān)聽瀏覽器窗口變化問題

    解決vue單頁面多個組件嵌套監(jiān)聽瀏覽器窗口變化問題

    這篇文章主要介紹了解決vue單頁面多個組件嵌套監(jiān)聽瀏覽器窗口變化問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue中實現(xiàn)權(quán)限控制的方法示例

    Vue中實現(xiàn)權(quán)限控制的方法示例

    這篇文章主要介紹了Vue中實現(xiàn)權(quán)限控制的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 解決Vue2跨域報錯AxiosError?net::ERR_FAILED、?Network?Error、ERR_NETWORK

    解決Vue2跨域報錯AxiosError?net::ERR_FAILED、?Network?Error、ERR_N

    這篇文章主要給大家介紹了關(guān)于解決Vue2跨域報錯AxiosError?net::ERR_FAILED、?Network?Error、ERR_NETWORK的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • vue修改props數(shù)據(jù)報錯的問題及解決

    vue修改props數(shù)據(jù)報錯的問題及解決

    這篇文章主要介紹了vue修改props數(shù)據(jù)報錯的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue中el-checkbox、el-switch綁定值問題詳解

    vue中el-checkbox、el-switch綁定值問題詳解

    這篇文章主要給大家介紹了關(guān)于vue中el-checkbox、el-switch綁定值問題的相關(guān)資料,文中通過代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • 基于vue+face-api.js實現(xiàn)前端人臉識別功能

    基于vue+face-api.js實現(xiàn)前端人臉識別功能

    基于face-api.js要實現(xiàn)人臉識別功能,首先要將自己需要的模型文件下載保存在靜態(tài)目錄下,可以通過cdn的方式在index.html中引入face-api.js,本文給大家介紹vue+face-api.js實現(xiàn)前端人臉識別功能,感興趣的朋友一起看看吧
    2023-12-12
  • 關(guān)于VueSSR的一些理解和詳細配置

    關(guān)于VueSSR的一些理解和詳細配置

    這篇文章主要介紹了關(guān)于VueSSR的一些理解和詳細配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評論

罗城| 呼伦贝尔市| 竹溪县| 巫山县| 祁门县| 兴安县| 股票| 舟山市| 营山县| 孟州市| 会宁县| 垦利县| 蓝山县| 永福县| 辰溪县| 山阳县| 威宁| 嵩明县| 和硕县| 汶川县| 山东| 桐柏县| 合阳县| 义马市| 嘉禾县| 冷水江市| 全南县| 西昌市| 兴海县| 锦州市| 辽源市| 瓦房店市| 静海县| 胶南市| 巍山| 巨野县| 楚雄市| 钟祥市| 博湖县| 扬中市| 孟津县|