国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2

這篇具有很好參考價(jià)值的文章主要介紹了Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

結(jié)構(gòu)型模式

結(jié)構(gòu)型模式主要涉及如何組合各種對象以便獲得更好、更靈活的結(jié)構(gòu)。雖然面向?qū)ο蟮睦^承機(jī)制提供了最基本的子類擴(kuò)展父類的功能,但結(jié)構(gòu)型模式不僅僅簡單地使用繼承,而更多地通過組合與運(yùn)行期的動態(tài)組合來實(shí)現(xiàn)更靈活的功能。

包括:
1、適配器
2、橋接
3、組合
4、裝飾器Decorator
5、外觀
6、享元
7、代理

裝飾者模式

指在不改變現(xiàn)有對象結(jié)構(gòu)的情況下,動態(tài)地給該對象增加一些職責(zé)(即增加其額外功能)的模式

結(jié)構(gòu)
1、抽象構(gòu)件:規(guī)范準(zhǔn)備接收附加責(zé)任的對象
2、具體構(gòu)件
3、抽象裝飾角色:繼承或?qū)崿F(xiàn)抽象構(gòu)建,并包含具體構(gòu)建的實(shí)例,通過其子類擴(kuò)展具體構(gòu)建的功能
4、具體裝飾角色

Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2,java,學(xué)習(xí),設(shè)計(jì)模式
好處
1、裝飾者模式可以帶來比繼承者更加靈活性的擴(kuò)展功能,使用更加方便,可以通過組合不同裝飾者對象來獲取具有不同行為狀態(tài)的多樣化的結(jié)果。裝飾者模式比繼承更具良好的擴(kuò)展性,完美的遵循開閉原則,繼承是靜態(tài)的附加責(zé)任,裝飾者則是動態(tài)的附加責(zé)任
2、裝飾類和被裝飾類可以獨(dú)立發(fā)展,不會相互耦合,裝飾模式是繼承的一個(gè)替代模式,裝飾模式可以動態(tài)擴(kuò)展成一個(gè)實(shí)現(xiàn)類的功能

橋接模式

將抽象與實(shí)現(xiàn)分離,使它們可以獨(dú)立變化。是用組合關(guān)系代替繼承關(guān)系來實(shí)現(xiàn),從而降低了抽線和實(shí)現(xiàn)這兩個(gè)可變維度的耦合度。

結(jié)構(gòu)
1、抽象化角色
2、擴(kuò)展抽象化角色
3、實(shí)現(xiàn)化角色
4、具體實(shí)現(xiàn)化角色

Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2,java,學(xué)習(xí),設(shè)計(jì)模式
好處
1、橋接模式提高了系統(tǒng)的可擴(kuò)充性,在兩個(gè)變化維度中任意擴(kuò)展一個(gè)維度,都不需要修改原有系統(tǒng)
2、實(shí)現(xiàn)細(xì)節(jié)對客戶透明

外觀模式

又名門面模式,是一種通過為多個(gè)復(fù)雜的子系統(tǒng)提供一個(gè)一致的接口,而使這些子系統(tǒng)更加容易被訪問的模式。該模式對外有一個(gè)統(tǒng)一接口,外部應(yīng)用程序不用關(guān)心內(nèi)部子系統(tǒng)的具體的細(xì)節(jié),這樣會大大降低應(yīng)用程序的復(fù)雜度,提高了程序的可維護(hù)性

結(jié)構(gòu)
1、外觀角色
2、子系統(tǒng)角色

Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2,java,學(xué)習(xí),設(shè)計(jì)模式
好處
1、降低了子系統(tǒng)與客戶端之間的耦合度,使子系統(tǒng)的變化不會影響調(diào)用它的客戶類
2、對客戶屏蔽了子系統(tǒng)組件,減少了客戶處理的對象數(shù)目,并使得子系統(tǒng)使用起來更加容易

缺點(diǎn):不符合開閉原則,修改很麻煩

組合模式

又名部分整體模式,是用于把一組相似的對象當(dāng)作一個(gè)單一的對象。組合模式依據(jù)樹形結(jié)構(gòu)來組合對象,用來表示部分以及整體層次。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,創(chuàng)建了對象組的樹形結(jié)構(gòu)。

結(jié)構(gòu)
1、抽象根節(jié)點(diǎn)
2、樹枝節(jié)點(diǎn)
3、葉子節(jié)點(diǎn)

Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2,java,學(xué)習(xí),設(shè)計(jì)模式
分類
根據(jù)抽象構(gòu)建類的定義形式:

1、透明組合模式
抽象根節(jié)點(diǎn)角色中聲明了所有用于管理成員對象的方法,這樣做的好處是確保所有的構(gòu)建類都有相同的接口。

缺點(diǎn)是不夠安全,因?yàn)槿~子對象和容器對象在本質(zhì)上是有區(qū)別的,葉子對象不可能有下一個(gè)層次的對象,即不可能包含成員對象,因此提供方法是沒有意義的,在編譯階段不會報(bào)錯(cuò),在運(yùn)行階段如果調(diào)用這些方法可能會出錯(cuò)(如果沒有提供相應(yīng)的錯(cuò)誤處理代碼)

2、安全組合模式
抽象構(gòu)件角色中沒有聲明任何用于管理成員對象的辦法,而是在樹枝節(jié)點(diǎn)中聲明并實(shí)現(xiàn)這些方法。

缺點(diǎn)是不夠透明,因?yàn)槿~子構(gòu)建和容器構(gòu)件具有不同的方法,且容器構(gòu)件中那些用一把管理成員對象的方法沒有在抽象構(gòu)件類中定義,因此客戶端不能完全針對抽象編程,必須有區(qū)別地對待葉子構(gòu)件和容器構(gòu)件。

優(yōu)點(diǎn)

1、組合模式可以清楚地定義分層次的復(fù)雜對象,表示對象的全部或部分層次,它讓客戶端忽略了層次的差異,方便對整個(gè)層次結(jié)構(gòu)進(jìn)行控制。
2、客戶端可以一致地使用一個(gè)組合結(jié)構(gòu)或其中單個(gè)對象,不必關(guān)心處理的是單個(gè)對象還是整個(gè)組合結(jié)構(gòu),簡化了客戶端代碼。
3、在組合模式中增加新的樹枝節(jié)點(diǎn)和葉子節(jié)點(diǎn)都很方便,無須對現(xiàn)有類庫進(jìn)行任何修改,符合“開閉原則”。
4、組合模式為樹形結(jié)構(gòu)的面向?qū)ο髮?shí)現(xiàn)提供了一種靈活的解決方案,通過葉子節(jié)點(diǎn)和樹枝節(jié)點(diǎn)的遞歸組合,可以形成復(fù)雜的樹形結(jié)構(gòu),但對樹形結(jié)構(gòu)的控制卻非常簡單。

享元模式

運(yùn)用共享技術(shù)來有效地支持大量細(xì)粒度對象的復(fù)用。通過共享已經(jīng)存在的對象來大幅度減少需要?jiǎng)?chuàng)建的對象數(shù)量、避免大量相似對象的開銷,從而提高系統(tǒng)資源的利用率。

結(jié)構(gòu)
存在兩種狀態(tài):
1、內(nèi)部狀態(tài),不會隨著環(huán)境的改變而改變的可共享部分
2、外部狀態(tài),隨環(huán)境改變而改變的不可以共享的部分。

角色:
1、抽象享元角色
2、具體享元角色
3、非享元角色
4、享元工廠角色

Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2,java,學(xué)習(xí),設(shè)計(jì)模式

優(yōu)點(diǎn)
1、極大減少內(nèi)存中相似或相同對象數(shù)量,節(jié)約系統(tǒng)資源,提高系統(tǒng)性能
2、外部狀態(tài)相對獨(dú)立,且不影響內(nèi)部狀態(tài)

缺點(diǎn):
為了使對象可以共享,需要將享元對象的部分狀態(tài)外部化,分離內(nèi)部狀態(tài)和外部狀態(tài),使程序邏輯復(fù)雜文章來源地址http://www.zghlxwxcb.cn/news/detail-775752.html

到了這里,關(guān)于Java學(xué)習(xí)——設(shè)計(jì)模式——結(jié)構(gòu)型模式2的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java設(shè)計(jì)模式-結(jié)構(gòu)型-適配器模式

    Java設(shè)計(jì)模式-結(jié)構(gòu)型-適配器模式

    ? 與電源適配器相似,在適配器模式中引入了一個(gè)被稱為適配器(Adapter)的包裝類,而它所包裝的對象稱為適配者(Adaptee),即被適配的類。適配器的實(shí)現(xiàn)就是把客戶類的請求轉(zhuǎn)化為對適配者的相應(yīng)接口的調(diào)用。也就是說:當(dāng)客戶類調(diào)用適配器的方法時(shí),在適配器類的內(nèi)部將調(diào)用

    2024年02月20日
    瀏覽(30)
  • Java23種設(shè)計(jì)模式-結(jié)構(gòu)型模式之組合模式

    組合模式 (Composite Pattern):將 對象組合成樹狀結(jié)構(gòu) 以表示“ 部分-整體 ”層次結(jié)構(gòu),同時(shí)保持對單個(gè)對象和組合對象的一致性操作,主要目的是簡化客戶端代碼,因?yàn)樗梢越y(tǒng)一處理單個(gè)對象和組合對象。 通常包含以下幾個(gè)角色: 角色1. 抽象組件 (Component):聲明了 組

    2024年04月26日
    瀏覽(30)
  • 【Java 設(shè)計(jì)模式】結(jié)構(gòu)型之享元模式

    享元模式(Flyweight Pattern)是一種結(jié)構(gòu)型設(shè)計(jì)模式,它旨在減少對象的數(shù)量以節(jié)省內(nèi)存和提高性能。享元模式通過共享大量相似對象的狀態(tài),使得這些對象可以共享,而不需要在每個(gè)對象中都存儲相同的數(shù)據(jù)。在本文中,我們將深入研究Java中享元模式的定義、結(jié)構(gòu)、使用場景

    2024年01月22日
    瀏覽(30)
  • 【Java 設(shè)計(jì)模式】結(jié)構(gòu)型之適配器模式

    【Java 設(shè)計(jì)模式】結(jié)構(gòu)型之適配器模式

    適配器模式(Adapter Pattern)是一種結(jié)構(gòu)型設(shè)計(jì)模式, 用于將一個(gè)類的接口轉(zhuǎn)換成客戶端期望的另一個(gè)接口 。這種模式使得原本由于接口不兼容而不能一起工作的類可以一起工作。在本文中,我們將介紹 Java 中適配器模式的定義、結(jié)構(gòu)、使用場景以及如何在實(shí)際開發(fā)中應(yīng)用。

    2024年01月19日
    瀏覽(25)
  • Java設(shè)計(jì)模式之結(jié)構(gòu)型-橋接模式(UML類圖+案例分析)

    Java設(shè)計(jì)模式之結(jié)構(gòu)型-橋接模式(UML類圖+案例分析)

    目錄 一、基礎(chǔ)概念 二、UML類圖 三、角色設(shè)計(jì) 四、案例分析 4.1、支付方式 4.2、支付渠道? 五、總結(jié) 橋接模式(Bridge Pattern)是一種結(jié)構(gòu)型設(shè)計(jì)模式,其主要目的是“將抽象部分與實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化”。 橋接模式的核心思想是把抽象(abstraction)與實(shí)現(xiàn)

    2024年02月13日
    瀏覽(22)
  • Java設(shè)計(jì)模式之結(jié)構(gòu)型-組合模式(UML類圖+案例分析)

    Java設(shè)計(jì)模式之結(jié)構(gòu)型-組合模式(UML類圖+案例分析)

    目錄 一、基礎(chǔ)概念 二、UML類圖 三、角色設(shè)計(jì) 四、案例分析 4.1、基本實(shí)現(xiàn) 4.2、菜單遍歷? 五、總結(jié)? 組合模式(Composite Pattern)又叫部分-整體模式,它通過將對象組合成樹形結(jié)構(gòu)來表示“整體-部分”的層次關(guān)系,允許用戶統(tǒng)一單個(gè)對象和組合對象的處理邏輯。 角色 描述

    2024年02月16日
    瀏覽(25)
  • Java設(shè)計(jì)模式之結(jié)構(gòu)型-裝飾器模式(UML類圖+案例分析)

    Java設(shè)計(jì)模式之結(jié)構(gòu)型-裝飾器模式(UML類圖+案例分析)

    目錄 一、基本概念 二、UML類圖 三、角色設(shè)計(jì) 四、代碼實(shí)現(xiàn) 案例一 案例二? 五、總結(jié)? 裝飾器模式是指不必在改變原有的類和不使用繼承的情況下,動態(tài)擴(kuò)展一個(gè)對象的功能。 角色 描述 抽象構(gòu)件 是一個(gè)接口或者抽象類,定義我們最核心的對象 具體構(gòu)件 抽象構(gòu)件的實(shí)現(xiàn),

    2024年02月11日
    瀏覽(26)
  • Java設(shè)計(jì)模式之結(jié)構(gòu)型-享元模式(UML類圖+案例分析)

    Java設(shè)計(jì)模式之結(jié)構(gòu)型-享元模式(UML類圖+案例分析)

    目錄 一、基本概念 二、UML類圖 三、角色設(shè)計(jì) 四、案例分析 4.1、基本實(shí)現(xiàn) 4.2、游戲角色 五、總結(jié) 享元模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,主要用于減少創(chuàng)建大量相似對象所占用的內(nèi)存,它通過共享技術(shù)來有效支持大量細(xì)粒度的對象。 角色 描述 抽象享元角色 定義出對象的外部狀

    2024年02月16日
    瀏覽(27)
  • 設(shè)計(jì)模式--------結(jié)構(gòu)型模式

    設(shè)計(jì)模式--------結(jié)構(gòu)型模式

    結(jié)構(gòu)型模式描述如何將類或?qū)ο蟀茨撤N布局組成更大的結(jié)構(gòu)。它分為類結(jié)構(gòu)型模式和對象結(jié)構(gòu)型模式,前者采用繼承機(jī)制來組織接口和類,后者釆用組合或聚合來組合對象。 由于組合關(guān)系或聚合關(guān)系比繼承關(guān)系耦合度低,滿足“合成復(fù)用原則”,所以對象結(jié)構(gòu)型模式比類結(jié)構(gòu)

    2024年02月13日
    瀏覽(30)
  • 設(shè)計(jì)模式結(jié)構(gòu)型——外觀模式

    設(shè)計(jì)模式結(jié)構(gòu)型——外觀模式

    目錄 什么是外觀模式 外觀模式的實(shí)現(xiàn) 外觀模式角色 外觀模式舉例 外觀模式類圖 外觀模式代碼實(shí)現(xiàn) 外觀模式的特點(diǎn) 優(yōu)點(diǎn) 缺點(diǎn) 注意事項(xiàng) 應(yīng)用場景 總結(jié) ????????外觀模式(Facade Pattern):又叫作門面模式,歸屬于結(jié)構(gòu)型模式。外觀模式定義了提供了定義了一個(gè)統(tǒng)一的高層

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包