国产乱人视频免费观看网站,九九精品视频在线观看,九九久re8在线精品视频,日韩久久精品五月综合

<menu id="zjelp"></menu>

    <th id="zjelp"><tbody id="zjelp"><form id="zjelp"></form></tbody></th>
    <small id="zjelp"><menuitem id="zjelp"></menuitem></small>
  • <small id="zjelp"></small>

    <address id="zjelp"></address>
    <address id="zjelp"></address>
    第四章簡(jiǎn)單工廠模式(Jv).pptx

    第四章簡(jiǎn)單工廠模式(Jv).pptx

    ID:82326473

    大小:2.85 MB

    頁(yè)數(shù):30頁(yè)

    時(shí)間:2024-08-29

    上傳者:L.M
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第1頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第2頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第3頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第4頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第5頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第6頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第7頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第8頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第9頁(yè)
    第四章簡(jiǎn)單工廠模式(Jv).pptx_第10頁(yè)
    資源描述:

    《第四章簡(jiǎn)單工廠模式(Jv).pptx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫(kù)。

    第4章簡(jiǎn)單工廠模式 本章教學(xué)內(nèi)容創(chuàng)建型模式創(chuàng)建型模式概述創(chuàng)建型模式簡(jiǎn)介簡(jiǎn)單工廠模式模式動(dòng)機(jī)與定義模式結(jié)構(gòu)與分析模式實(shí)例與解析模式效果與應(yīng)用模式擴(kuò)展 創(chuàng)建型模式創(chuàng)建型模式概述創(chuàng)建型模式(CreationalPattern)對(duì)類的實(shí)例化過(guò)程進(jìn)行了抽象,能夠?qū)④浖K中對(duì)象的創(chuàng)建和對(duì)象的使用分離。為了使軟件的結(jié)構(gòu)更加清晰,外界對(duì)于這些對(duì)象只需要知道它們共同的接口,而不清楚其具體的實(shí)現(xiàn)細(xì)節(jié),使整個(gè)系統(tǒng)的設(shè)計(jì)更加符合單一職責(zé)原則。 創(chuàng)建型模式創(chuàng)建型模式概述創(chuàng)建型模式在創(chuàng)建什么(What),由誰(shuí)創(chuàng)建(Who),何時(shí)創(chuàng)建(When)等方面都為軟件設(shè)計(jì)者提供了盡可能大的靈活性。創(chuàng)建型模式隱藏了類的實(shí)例的創(chuàng)建細(xì)節(jié),通過(guò)隱藏對(duì)象如何被創(chuàng)建和組合在一起達(dá)到使整個(gè)系統(tǒng)獨(dú)立的目的。 創(chuàng)建型模式想吃蘋(píng)果!?創(chuàng)建型模式概述 創(chuàng)建型模式通常獲取蘋(píng)果的兩種方式自己種蘋(píng)果樹(shù)去超市買(mǎi)創(chuàng)建型模式概述 創(chuàng)建型模式簡(jiǎn)單工廠模式(SimpleFactory)工廠方法模式(FactoryMethod)抽象工廠模式(AbstractFactory)原型模式(Prototype)單例模式(Singleton)建造者模式(Builder)創(chuàng)建型模式簡(jiǎn)介 簡(jiǎn)單工廠模式模式動(dòng)機(jī)只要說(shuō)出水果的名字就能得到想要的水果。 簡(jiǎn)單工廠模式模式動(dòng)機(jī)考慮一個(gè)簡(jiǎn)單的軟件應(yīng)用場(chǎng)景,一個(gè)軟件系統(tǒng)可以提供多個(gè)外觀不同的按鈕(如圓形按鈕、矩形按鈕、菱形按鈕等),這些按鈕都源自同一個(gè)基類,不過(guò)在繼承基類后不同的子類修改了部分屬性從而使得它們可以呈現(xiàn)不同的外觀,如果我們希望在使用這些按鈕時(shí),不需要知道這些具體按鈕類的名字,只需要知道表示該按鈕類的一個(gè)參數(shù),并提供一個(gè)調(diào)用方便的方法,把該參數(shù)傳入方法即可返回一個(gè)相應(yīng)的按鈕對(duì)象,此時(shí),就可以使用簡(jiǎn)單工廠模式。 簡(jiǎn)單工廠模式模式定義簡(jiǎn)單工廠模式(SimpleFactoryPattern):又稱為靜態(tài)工廠方法(StaticFactoryMethod)模式,它屬于類創(chuàng)建型模式。在簡(jiǎn)單工廠模式中,可以根據(jù)自變量的不同返回不同類的實(shí)例。簡(jiǎn)單工廠模式專門(mén)定義一個(gè)類來(lái)負(fù)責(zé)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類。 簡(jiǎn)單工廠模式模式結(jié)構(gòu) 簡(jiǎn)單工廠模式模式結(jié)構(gòu)簡(jiǎn)單工廠模式包含如下角色:Factory:工廠角色Product:抽象產(chǎn)品角色ConcreteProduct:具體產(chǎn)品角色 簡(jiǎn)單工廠模式模式分析分析如下代碼:publicvoidpay(Stringtype){if(type.equalsIgnoreCase("cash")){//現(xiàn)金支付處理代碼}elseif(type.equalsIgnoreCase("creditcard")){//信用卡支付處理代碼}elseif(type.equalsIgnoreCase("voucher")){//代金券支付處理代碼}else{……}}代碼復(fù)雜,難以維護(hù) 簡(jiǎn)單工廠模式模式分析重構(gòu)后的代碼:publicabstractclassAbstractPay{publicabstractvoidpay();}publicclassCashPayextendsAbstractPay{publicvoidpay(){//現(xiàn)金支付處理代碼}}抽象支付類具體支付類 簡(jiǎn)單工廠模式模式分析重構(gòu)后的代碼:publicclassPayMethodFactory{publicstaticAbstractPaygetPayMethod(Stringtype){if(type.equalsIgnoreCase("cash")){returnnewCashPay();//根據(jù)參數(shù)創(chuàng)建具體產(chǎn)品}elseif(type.equalsIgnoreCase("creditcard")){returnnewCreditcardPay();//根據(jù)參數(shù)創(chuàng)建具體產(chǎn)品}……}}支付工廠 簡(jiǎn)單工廠模式模式分析將對(duì)象的創(chuàng)建和對(duì)象本身業(yè)務(wù)處理分離可以降低系統(tǒng)的耦合度,使得兩者修改起來(lái)都相對(duì)容易。在調(diào)用工廠類的工廠方法時(shí),由于工廠方法是靜態(tài)方法,使用起來(lái)很方便,可通過(guò)類名直接調(diào)用,而且只需要傳入一個(gè)簡(jiǎn)單的參數(shù)即可,在實(shí)際開(kāi)發(fā)中,還可以在調(diào)用時(shí)將所傳入的參數(shù)保存在XML等格式的配置文件中,修改參數(shù)時(shí)無(wú)需修改任何Java源代碼。簡(jiǎn)單工廠模式最大的問(wèn)題在于工廠類的職責(zé)相對(duì)過(guò)重,增加新的產(chǎn)品需要修改工廠類的判斷邏輯,這一點(diǎn)與開(kāi)閉原則是相違背的。簡(jiǎn)單工廠模式的要點(diǎn)在于:當(dāng)你需要什么,只需要傳入一個(gè)正確的參數(shù),就可以獲取你所需要的對(duì)象,而無(wú)需知道其創(chuàng)建細(xì)節(jié)。 簡(jiǎn)單工廠模式模式實(shí)例與解析實(shí)例一:簡(jiǎn)單電視機(jī)工廠某電視機(jī)廠專為各知名電視機(jī)品牌代工生產(chǎn)各類電視機(jī),當(dāng)需要海爾牌電視機(jī)時(shí)只需要在調(diào)用該工廠的工廠方法時(shí)傳入?yún)?shù)“Haier”,需要海信電視機(jī)時(shí)只需要傳入?yún)?shù)“Hisense”,工廠可以根據(jù)傳入的不同參數(shù)返回不同品牌的電視機(jī)。現(xiàn)使用簡(jiǎn)單工廠模式來(lái)模擬該電視機(jī)工廠的生產(chǎn)過(guò)程。 簡(jiǎn)單工廠模式模式實(shí)例與解析實(shí)例一:簡(jiǎn)單電視機(jī)工廠 簡(jiǎn)單工廠模式模式實(shí)例與解析實(shí)例一:簡(jiǎn)單電視機(jī)工廠參考代碼演示…… 簡(jiǎn)單工廠模式模式實(shí)例與解析實(shí)例二:權(quán)限管理在某OA系統(tǒng)中,系統(tǒng)根據(jù)對(duì)比用戶在登錄時(shí)輸入的賬號(hào)和密碼以及在數(shù)據(jù)庫(kù)中存儲(chǔ)的賬號(hào)和密碼是否一致來(lái)進(jìn)行身份驗(yàn)證,如果驗(yàn)證通過(guò),則取出存儲(chǔ)在數(shù)據(jù)庫(kù)中的用戶權(quán)限等級(jí)(以整數(shù)形式存儲(chǔ)),根據(jù)不同的權(quán)限等級(jí)創(chuàng)建不同等級(jí)的用戶對(duì)象,不同等級(jí)的用戶對(duì)象擁有不同的操作權(quán)限?,F(xiàn)使用簡(jiǎn)單工廠模式來(lái)設(shè)計(jì)該權(quán)限管理模塊。 簡(jiǎn)單工廠模式模式實(shí)例與解析實(shí)例二:權(quán)限管理 簡(jiǎn)單工廠模式模式實(shí)例與解析實(shí)例二:權(quán)限管理參考代碼演示…… 簡(jiǎn)單工廠模式模式優(yōu)缺點(diǎn)簡(jiǎn)單工廠模式的優(yōu)點(diǎn)如下:工廠類含有必要的判斷邏輯,可以決定在什么時(shí)候創(chuàng)建哪一個(gè)產(chǎn)品類的實(shí)例,客戶端可以免除直接創(chuàng)建產(chǎn)品對(duì)象的責(zé)任,而僅僅“消費(fèi)”產(chǎn)品;簡(jiǎn)單工廠模式通過(guò)這種做法實(shí)現(xiàn)了對(duì)責(zé)任的分割,它提供了專門(mén)的工廠類用于創(chuàng)建對(duì)象??蛻舳藷o(wú)需知道所創(chuàng)建的具體產(chǎn)品類的類名,只需要知道具體產(chǎn)品類所對(duì)應(yīng)的參數(shù)即可,對(duì)于一些復(fù)雜的類名,通過(guò)簡(jiǎn)單工廠模式可以減少使用者的記憶量。通過(guò)引入配置文件,可以在不修改任何客戶端代碼的情況下更換和增加新的具體產(chǎn)品類,在一定程度上提高了系統(tǒng)的靈活性。 簡(jiǎn)單工廠模式模式優(yōu)缺點(diǎn)簡(jiǎn)單工廠模式的缺點(diǎn)如下:由于工廠類集中了所有產(chǎn)品創(chuàng)建邏輯,一旦不能正常工作,整個(gè)系統(tǒng)都要受到影響。使用簡(jiǎn)單工廠模式將會(huì)增加系統(tǒng)中類的個(gè)數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。系統(tǒng)擴(kuò)展困難,一旦添加新產(chǎn)品就不得不修改工廠邏輯,在產(chǎn)品類型較多時(shí),有可能造成工廠邏輯過(guò)于復(fù)雜,不利于系統(tǒng)的擴(kuò)展和維護(hù)。簡(jiǎn)單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無(wú)法形成基于繼承的等級(jí)結(jié)構(gòu)。 簡(jiǎn)單工廠模式模式適用環(huán)境在以下情況下可以使用簡(jiǎn)單工廠模式:工廠類負(fù)責(zé)創(chuàng)建的對(duì)象比較少:由于創(chuàng)建的對(duì)象較少,不會(huì)造成工廠方法中的業(yè)務(wù)邏輯太過(guò)復(fù)雜;客戶端只知道傳入工廠類的參數(shù),對(duì)于如何創(chuàng)建對(duì)象不關(guān)心:客戶端既不需要關(guān)心創(chuàng)建細(xì)節(jié),甚至連類名都不需要記住,只需要知道類型所對(duì)應(yīng)的參數(shù)。 簡(jiǎn)單工廠模式模式應(yīng)用(1)在JDK類庫(kù)中廣泛使用了簡(jiǎn)單工廠模式,如工具類java.text.DateFormat,它用于格式化一個(gè)本地日期或者時(shí)間。publicfinalstaticDateFormatgetDateInstance();publicfinalstaticDateFormatgetDateInstance(intstyle);publicfinalstaticDateFormatgetDateInstance(intstyle,Localelocale); 簡(jiǎn)單工廠模式模式應(yīng)用(2)Java密碼學(xué)參考代碼:DESEncrypt.java//獲取不同加密算法的密鑰生成器KeyGeneratorkeyGen=KeyGenerator.getInstance("DESede");//創(chuàng)建密碼器Ciphercp=Cipher.getInstance("DESede"); 簡(jiǎn)單工廠模式模式擴(kuò)展簡(jiǎn)單工廠模式的簡(jiǎn)化:在有些情況下工廠類可以由抽象產(chǎn)品角色扮演,一個(gè)抽象產(chǎn)品類同時(shí)也是子類的工廠,也就是說(shuō)把靜態(tài)工廠方法寫(xiě)到抽象產(chǎn)品類中。 本章小結(jié)創(chuàng)建型模式對(duì)類的實(shí)例化過(guò)程進(jìn)行了抽象,能夠?qū)?duì)象的創(chuàng)建與對(duì)象的使用過(guò)程分離。簡(jiǎn)單工廠模式又稱為靜態(tài)工廠方法模式,它屬于類創(chuàng)建型模式。在簡(jiǎn)單工廠模式中,可以根據(jù)自變量的不同返回不同類的實(shí)例。簡(jiǎn)單工廠模式專門(mén)定義一個(gè)類來(lái)負(fù)責(zé)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類。簡(jiǎn)單工廠模式包含三個(gè)角色:工廠角色負(fù)責(zé)實(shí)現(xiàn)創(chuàng)建所有實(shí)例的內(nèi)部邏輯;抽象產(chǎn)品角色是所創(chuàng)建的所有對(duì)象的父類,負(fù)責(zé)描述所有實(shí)例所共有的公共接口;具體產(chǎn)品角色是創(chuàng)建目標(biāo),所有創(chuàng)建的對(duì)象都充當(dāng)這個(gè)角色的某個(gè)具體類的實(shí)例。 本章小結(jié)簡(jiǎn)單工廠模式的要點(diǎn)在于:當(dāng)你需要什么,只需要傳入一個(gè)正確的參數(shù),就可以獲取你所需要的對(duì)象,而無(wú)需知道其創(chuàng)建細(xì)節(jié)。簡(jiǎn)單工廠模式最大的優(yōu)點(diǎn)在于實(shí)現(xiàn)對(duì)象的創(chuàng)建和對(duì)象的使用分離,將對(duì)象的創(chuàng)建交給專門(mén)的工廠類負(fù)責(zé),但是其最大的缺點(diǎn)在于工廠類不夠靈活,增加新的具體產(chǎn)品需要修改工廠類的判斷邏輯代碼,而且產(chǎn)品較多時(shí),工廠方法代碼將會(huì)非常復(fù)雜。簡(jiǎn)單工廠模式適用情況包括:工廠類負(fù)責(zé)創(chuàng)建的對(duì)象比較少;客戶端只知道傳入工廠類的參數(shù),對(duì)于如何創(chuàng)建對(duì)象不關(guān)心。

    當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

    此文檔下載收益歸作者所有

    當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
    溫馨提示:
    1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
    2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
    3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
    4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
    最近更新
    更多
    大家都在看
    近期熱門(mén)
    關(guān)閉