第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

模式的秘密——工廠模式

難度中級
時長 1小時 0分
學習人數(shù)
綜合評分9.03
200人評價 查看評價
9.3 內(nèi)容實用
8.9 簡潔易懂
8.9 邏輯清晰
  • 什么情況下適合工廠模式
    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-06-27

  • 工廠模式意圖
    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-06-27

  • 工廠模式
    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-06-27

  • 工廠模式
    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-06-27

  • 設(shè)計模式是有限的使用案例,使用設(shè)計模式可提高代碼的重用性、代碼更容易被他人理解、保證代碼的可靠性。

    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-06-08

  • 設(shè)計模式(Design Pattern)是一套被反復使用、多數(shù)人知曉的、經(jīng)過分類編目的,代碼設(shè)計經(jīng)驗的總結(jié)

    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-06-08

  • 工廠模式
    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-06-03

  • @設(shè)計模式---工廠模式的總結(jié)

    一、工廠方法模式和抽象工廠模式的對比
    ????1.工廠模式是一種極端情況下的抽象工廠模式,通過前面的類圖和代碼實現(xiàn)我們可以看到這樣一個對比,而抽象工廠模式可以看成是工廠模式的推廣,
    ????2.工廠模式用來創(chuàng)建一個產(chǎn)品的等級結(jié)構(gòu),而抽象工廠模式是用來創(chuàng)建多個產(chǎn)品的等級結(jié)構(gòu),
    ????3.工廠模式只有一個抽象產(chǎn)品類,而抽象工廠模式有多個抽象產(chǎn)品類,總之就是單一對多個產(chǎn)品的這種對比。

    二、工廠模式幫助我們實現(xiàn)了什么呢?
    ????1.系統(tǒng)可以在不修改具體工廠角色的情況下引進新的產(chǎn)品,
    ????2.客戶端不必關(guān)系對象如何去創(chuàng)建,明確了職責,對象具體的創(chuàng)建交給了具體的產(chǎn)品,product1,product2,客戶端只要告訴工廠我需要哪一,product1還是product2,它們具體是怎么創(chuàng)建的,怎么組合的,都交給了具體的產(chǎn)品product1,product2
    ????3.更好的理解面向?qū)ο蟮脑瓌t,面向接口編程,而不是面向?qū)崿F(xiàn)編程。
    那我們整體的工廠模式就是這樣一個原則。

    三、工廠模式適用于哪些場景呢?
    ????1.一個系統(tǒng)應當不依賴于產(chǎn)品類實例被創(chuàng)立,組成和表示的細節(jié),就是說這個產(chǎn)品如何被創(chuàng)建,組成和表現(xiàn),我們都歸結(jié)到具體的產(chǎn)品是如何實現(xiàn)上去了,與前端的client,和中端的factory都是沒有關(guān)系的,
    ????2.這個系統(tǒng)的產(chǎn)品至少有一個產(chǎn)品族,工廠方法模式就是一個產(chǎn)品族,它是最簡單的一個等級,
    ????3.同屬于同一個產(chǎn)品族的產(chǎn)品是設(shè)計成在一起使用的,這是毋庸置疑的,同屬于一個系列的產(chǎn)品,就是在一起的,
    ????4.不同的產(chǎn)品以一系列的接口的面貌出現(xiàn),從未使系統(tǒng)不依賴于接口實現(xiàn)的細節(jié),我們都是面向接口編程的,不是面向?qū)崿F(xiàn)編程的,

    查看全部
    0 采集 收起 來源:總結(jié)

    2018-05-31

  • @設(shè)計模式---工廠模式之 抽象工廠模式
    1.創(chuàng)建兩個接口,如:Boy,有drawMan();Girl,有drawWoman()。

    public?interface?Boy?{
    ??public?void?drawMan();
    }
    public?interface?Girl?{
    ??public?void?drawWoman();
    }

    2.創(chuàng)建接口的各兩個實現(xiàn)類,如:HNBoy、MCBoy;HNGirl、MCGirl。

    public?class?HNBoy?implements?Boy?{
    ??@Override
    ??public?void?drawMan()?{
    ????System.out.println("新年系列的男孩");
    ??}
    }
    public?class?MCBoy?implements?Boy?{
    ??@Override
    ??public?void?drawMan()?{
    ????System.out.println("圣誕系列的男孩");
    ??}
    }
    public?class?HNGirl?implements?Girl?{
    ??@Override
    ??public?void?drawWoman()?{
    ????System.out.println("圣誕系列的女孩");
    ??}
    }
    public?class?MCGirl?implements?Girl?{
    ??@Override
    ??public?void?drawWoman()?{
    ????System.out.println("圣誕系列的女孩");
    ??}
    }

    3.創(chuàng)建主工廠接口,如:PersonFactory。

    public?interface?PersonFactory?{
    ??//男孩接口
    ??public?Boy?getBoy();
    ??//女孩接口
    ??public?Girl?getGirl();
    }

    4.創(chuàng)建次工廠類實現(xiàn)主工廠接口,如:HNFactory和MCFactory。

    public?class?HNFactory?implements?PersonFactory?{
    ??@Override
    ??public?Boy?getBoy()?{
    ????return?new?HNBoy();
    ??}
    ??@Override
    ??public?Girl?getGirl()?{
    ????return?new?HNGirl();
    ??}
    }
    public?class?MCFactory?implements?PersonFactory?{
    ??@Override
    ??public?Boy?getBoy()?{
    ????return?new?MCBoy();
    ??}
    ??@Override
    ??public?Girl?getGirl()?{
    ????return?new?MCGirl();
    ??}
    }

    5.測試用例

    PersonFactory?factory?=?new?MCFactory();
    Girl?girl?=?factory.getGirl();
    girl.drawWoman();
    查看全部
  • @設(shè)計模式---工廠模式之 工廠方法模式
    1.創(chuàng)建一個接口,如:HairInterface,有個抽象方法draw。

    public?interface?HairInterface?{
    ????public?void?draw();
    }

    2.創(chuàng)建實現(xiàn)接口的子類,如:LeftHair、RightHair、InHair。

    public?class?LeftHair?implements?HairInterface?{
    ????@Override
    ????public?void?draw()?{
    ????????System.out.println("左偏分發(fā)型");
    ????}
    }

    3.創(chuàng)建工廠類,如:HairFactory,根據(jù)類的名稱來生產(chǎn)對象。

    public?HairInterface?getHairByClass(String?className){
    ????try?{
    ????????HairInterface?hair=(HairInterface)?Class.forName(className).newInstance();
    ????????return?hair;
    ????}?catch?(InstantiationException?e)?{
    ????????e.printStackTrace();
    ????}?catch?(IllegalAccessException?e)?{
    ????????e.printStackTrace();
    ????}?catch?(ClassNotFoundException?e)?{
    ????????e.printStackTrace();
    ????}
    ????return?null;
    }

    4.通過映射文件,簡化類的名稱,如:type.properties。

    left=onetry.DesigntonDemo.LeftHair
    right=onetry.DesigntonDemo.RighttHair
    in=onetry.DesigntonDemo.InHair

    5.創(chuàng)建properties文件的讀取工具,如:PropertiesReader。

    public?class?PropertiesReader?{
    ????public?Map<String,String>?getProperties(){??
    ????????Properties?props?=?new?Properties();
    ????????Map<String,String>?map?=?new?HashMap<String,String>();
    ????????try{
    ??????????//以流的形式讀取properties文件
    ??????????InputStream?in?=?getClass().getResourceAsStream("type.properties")?;
    ??????????props.load(in);
    ??????????Enumeration?en?=?props.propertyNames();
    ??????????while(en.hasMoreElements()){
    ??????????????String?key?=?(String)?en.nextElement();
    ??????????????String?property?=?props.getProperty(key);
    ??????????????map.put(key,?property);
    ????????????}
    ????????}catch(Exception?e){
    ??????????e.printStackTrace();
    ????????}
    ????????return?map;
    ????}
    }

    6.修改HairFactory,用PropertiesReader讀取 替換 原來的className。

    public?HairInterface?getHairByClassKey(String?key){
    ????try?{
    ??????Map<String,String>?map?=?new?PropertiesReader().getProperties();
    ??????HairInterface?hair=(HairInterface)Class.forName(map.get(key)).newInstance();
    ??????return?hair;
    ????}?catch?(InstantiationException?e)?{
    ??????e.printStackTrace();
    ????}?catch?(IllegalAccessException?e)?{
    ??????e.printStackTrace();
    ????}?catch?(ClassNotFoundException?e)?{
    ??????e.printStackTrace();
    ????}
    ????return?null;
    }

    7.測試用例

    HairFactory?factory?=?new?HairFactory();
    //HairInterface?left?=?factory.getHairByClass("onetry.DesigntonDemo.LeftHair");
    HairInterface?hair?=?factory.getHairByClassKey("in");
    hair.draw();
    查看全部
    1 采集 收起 來源:工廠模式應用

    2018-05-31

  • @設(shè)計模式---工廠模式
    一、工廠模式概念
    ????1.實例化對象,用工廠方法代替new操作;
    ????2.包括工廠方法模式和抽象工廠模式;
    ????3.抽象工廠模式是工廠方法模式的推廣。
    二、工廠模式的意圖
    ????1.定義【接口】來創(chuàng)建對象,但讓子類來決定哪些類需要被實例化;
    ????2.工廠方法把實例化的工作推遲到子類中去實現(xiàn)。
    三、適合工廠模式的情況
    ????1.有一組類似的對象需要創(chuàng)建。
    ????2.在編碼的時候不能預見需要創(chuàng)建哪種類的實例。
    ????3.系統(tǒng)需要考慮擴展性,不應依賴于產(chǎn)品類實例化如何被創(chuàng)建,組合和表達的細節(jié)。
    四、項目中的現(xiàn)狀
    ????在軟件系統(tǒng)中經(jīng)常面臨著“對象”的創(chuàng)建工作,由于需求的變化,這個對象可能隨之也會發(fā)生變化,但它卻擁有比較穩(wěn)定的接口。為此,我們需要提供一種封裝機制來隔離出這個易變對象的變化,從而保持系統(tǒng)中其他依賴該對象的對象不隨著需求變化而變化。
    五、基于項目現(xiàn)狀將代碼進行如下設(shè)計
    ????1.盡量松耦合,一個對象的依賴隊形的變化與本身無關(guān);
    ????2.具體產(chǎn)品與客戶端剝離,責任分割。

    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-05-31

  • 接口創(chuàng)建對象,子類決定哪些被實例化

    查看全部
    0 采集 收起 來源:工廠模式概述

    2018-05-21

  • 查看全部
    0 采集 收起 來源:工廠模式概述

    2018-05-06

  • 查看全部
    0 采集 收起 來源:工廠模式概述

    2018-05-06

  • 查看全部
    0 采集 收起 來源:工廠模式概述

    2018-05-06

舉報

0/150
提交
取消
課程須知
本課程是 Java 開發(fā)課程的中級課程,希望各位小伙伴們在學習本課程之前,了解以下內(nèi)容: 1、初步具備面向?qū)ο蟮脑O(shè)計思維 2、了解多態(tài)概念 3、了解反射
老師告訴你能學到什么?
1、理解工廠模式和抽象工廠模式的思想 2、工廠模式應用場景 3、抽象工廠模式應用場景

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網(wǎng)的支持!