欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java設(shè)計(jì)模式之橋接模式的實(shí)現(xiàn)

 更新時(shí)間:2021年06月06日 15:00:19   作者:RYGAR  
今天給大家?guī)淼奈恼率荍ava設(shè)計(jì)模式的相關(guān)知識點(diǎn),文中對橋接模式作了非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下

橋接模式

橋接模式是將抽象部分與它的實(shí)現(xiàn)部分分離,使他們都可以獨(dú)立地變化。它是一種對象結(jié)構(gòu)型模式,又稱為柄體(Handle and Body)模式或接口(Interface)模式。

在這里插入圖片描述

上圖一個(gè)類被三個(gè)類繼承,使我們的程序擴(kuò)展性,可維護(hù)性低,違反了單一職責(zé)原則。

在這里插入圖片描述

具體代碼實(shí)現(xiàn)如下:

1.創(chuàng)建品牌接口

package com.jialidun.gof.birdge;

//品牌
public interface Brand {

    void info();
}

2.創(chuàng)建計(jì)算機(jī)的抽象類

package com.jialidun.gof.birdge;

//抽象的電腦類型類
public abstract class Computer {

    //組合,品牌 橋
    protected Brand brand;

    public Computer(Brand brand){
        this.brand = brand;
    }

    public void info(){
        brand.info();//自帶品牌

    }
}

3.蘋果品牌

package com.jialidun.gof.birdge;

//蘋果品牌
public class Apple implements Brand{
    @Override
    public void info() {
        System.out.print("蘋果"+"\n");
    }
}

4.聯(lián)想品牌

package com.jialidun.gof.birdge;

//聯(lián)想品牌
public class Lenovo implements Brand{
    @Override
    public void info() {
        System.out.print("聯(lián)想"+"\n");
    }
}

5.臺式機(jī)

package com.jialidun.gof.birdge;

public class Desktop extends Computer{
    public Desktop(Brand brand) {
        super(brand);
        System.out.print("臺式機(jī)");
    }
}

6.筆記本

package com.jialidun.gof.birdge;

public class laptop extends Computer{
    public laptop(Brand brand) {
        super(brand);
        System.out.print("筆記本");
    }
}

7.測試

package com.jialidun.gof.birdge;

public class Test {
    public static void main(String[] args) {
        //蘋果筆記本
        Computer computer = new laptop(new Apple());
        computer.info();


        //聯(lián)想臺式機(jī)
        Desktop desktop = new Desktop(new Lenovo());
        desktop.info();


    }
}

在這里插入圖片描述

好處分析:

1.橋接模式偶爾類似于多繼承方案,但是多繼承方案違背了類的單一職責(zé)原則, 復(fù)用性比較差,類的個(gè)數(shù)也非常多,橋接模式是比多繼承方案更好的解決方法。極大的減少了子類的個(gè)數(shù),從而降低管理和維護(hù)的成本

2.橋接模式提高了系統(tǒng)的可擴(kuò)充性,在兩個(gè)變化維度中任意擴(kuò)展一個(gè)維度,都不需要修改原有系統(tǒng)。符合開閉原則,就像一座橋,可以把兩個(gè)變化的維度連接起來

劣勢分析

1.橋接模式的引入會增加系統(tǒng)的理解與設(shè)計(jì)難度,由于聚合關(guān)聯(lián)關(guān)系建立在抽象層,要求開發(fā)者針對抽象進(jìn)行設(shè)計(jì)與編程。

2.橋接模式要求正確識別出系統(tǒng)中兩個(gè)獨(dú)立變化的維度,因此其使用范圍具有一定的局限性。

到此這篇關(guān)于Java設(shè)計(jì)模式之橋接模式分析的文章就介紹到這了,更多相關(guān)Java橋接模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用spring-task定時(shí)任務(wù)動態(tài)配置修改執(zhí)行時(shí)間

    使用spring-task定時(shí)任務(wù)動態(tài)配置修改執(zhí)行時(shí)間

    這篇文章主要介紹了使用spring-task定時(shí)任務(wù)動態(tài)配置修改執(zhí)行時(shí)間,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • IKAnalyzer使用不同版本中文分詞的切詞方式實(shí)現(xiàn)相同功能效果

    IKAnalyzer使用不同版本中文分詞的切詞方式實(shí)現(xiàn)相同功能效果

    今天小編就為大家分享一篇關(guān)于IKAnalyzer使用不同版本中文分詞的切詞方式實(shí)現(xiàn)相同功能效果,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot配置項(xiàng)目啟動后自動打開瀏覽器訪問項(xiàng)目方式

    springboot配置項(xiàng)目啟動后自動打開瀏覽器訪問項(xiàng)目方式

    這篇文章主要介紹了springboot配置項(xiàng)目啟動后自動打開瀏覽器訪問項(xiàng)目方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • ZooKeeper入門教程一簡介與核心概念

    ZooKeeper入門教程一簡介與核心概念

    本文是ZooKeeper入門系列教程,涵蓋ZooKeeper核心內(nèi)容,通過實(shí)例和大量圖表,結(jié)合實(shí)戰(zhàn),幫助學(xué)習(xí)者理解和運(yùn)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-01-01
  • Java之Spring簡單的讀取和存儲對象

    Java之Spring簡單的讀取和存儲對象

    這篇文章主要介紹了Spring的讀取和存儲對象,獲取 bean 對象也叫做對象裝配,是把對象取出來放到某個(gè)類中,有時(shí)候也叫對象注?,想進(jìn)一步了解的同學(xué)可以參考本文
    2023-04-04
  • springboot?實(shí)現(xiàn)動態(tài)刷新配置的詳細(xì)過程

    springboot?實(shí)現(xiàn)動態(tài)刷新配置的詳細(xì)過程

    這篇文章主要介紹了springboot實(shí)現(xiàn)動態(tài)刷新配置,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • MyBatis?Xml映射文件之字符串替換方式

    MyBatis?Xml映射文件之字符串替換方式

    這篇文章主要介紹了MyBatis?Xml映射文件之字符串替換方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java+testng+selenium的自動化測試實(shí)例

    java+testng+selenium的自動化測試實(shí)例

    這篇文章主要介紹了java+testng+selenium的自動化測試實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • java提取字符串中數(shù)字string以及獲取字符串中的整數(shù)或小數(shù)

    java提取字符串中數(shù)字string以及獲取字符串中的整數(shù)或小數(shù)

    這篇文章主要給大家介紹了關(guān)于java提取字符串中數(shù)字string以及獲取字符串中的整數(shù)或小數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-08-08
  • Java中的BlockingQueue接口源碼解析

    Java中的BlockingQueue接口源碼解析

    這篇文章主要介紹了Java中的BlockingQueue接口源碼解析,BlockingQueue接口表示阻塞隊(duì)列,是Java并發(fā)包中阻塞隊(duì)列的接口定義規(guī)范,阻塞隊(duì)列意味著對于該隊(duì)列的操作是線程安全的,當(dāng)多個(gè)線程存放元素進(jìn)入隊(duì)列或者從隊(duì)列中取出元素都是線程安全的,需要的朋友可以參考下
    2023-11-11

最新評論