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

輕松掌握J(rèn)ava橋接模式

 更新時(shí)間:2016年09月30日 15:21:15   作者:斷了聯(lián)系  
這篇文章主要幫助大家輕松掌握J(rèn)ava橋接模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

定義:將抽象部分與實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立的變化。

特點(diǎn):橋接模式基于類的最小設(shè)計(jì)原則,通過(guò)使用封裝,聚合以及繼承等行為來(lái)讓不同的類承擔(dān)不同的責(zé)任。它的主要特點(diǎn)是把抽象(abstraction)與行為實(shí)現(xiàn)(implementation)分離開(kāi)來(lái),從而可以保持各部分的獨(dú)立性以及應(yīng)對(duì)它們的功能擴(kuò)展。

企業(yè)級(jí)開(kāi)發(fā)和常用框架中的應(yīng)用:多繼承的結(jié)構(gòu)

只是從定義理解橋接模式,很難理清它的作用,下面舉個(gè)例子來(lái)說(shuō)明:

電腦城賣(mài)電腦,電腦種類分了平板電腦,筆記本電腦,臺(tái)式電腦;電腦品牌又分了聯(lián)想,戴爾,華碩,神州。如果從多繼承的角度建類,則需要先建一個(gè)電腦抽象類,然后平板電腦、筆記本電腦、臺(tái)式電腦分別繼承抽象電腦類,不同的電腦品牌又要分別繼承這些電腦分類的類,然后實(shí)現(xiàn)方法,這樣,如果要添加一個(gè)電腦種類則不同的電腦品牌還要分別繼承該類,或者添加一個(gè)電腦品牌,則又要分別繼承不同的分類,這樣就是創(chuàng)建變得復(fù)雜化。

而橋接模式的思想就是從不同的維度實(shí)現(xiàn),通過(guò)提高耦合度的方式來(lái)減少開(kāi)發(fā)工作量,比如上面的電腦分類和電腦品牌分類分屬于兩個(gè)維度,如果我們從兩個(gè)維度分別實(shí)現(xiàn),這樣我們可以減少開(kāi)發(fā)復(fù)雜度,這就是Java開(kāi)發(fā)的單一原則。

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

package com.test.bridge;

interface Brand {
 public void sale();
}

class Dell implements Brand {
 public void sale() {
 System.out.println("銷(xiāo)售戴爾品牌電腦");
 }
}

class Lenovo implements Brand{
 public void sale() {
 System.out.println("銷(xiāo)售聯(lián)想品臺(tái)電腦");
 }
}

class Computer {
 protected Brand brand;
 public Computer(Brand b) {
 this.brand = b;
 }
 public void sale() {
 brand.sale();
 }
}

class Desktop extends Computer{

 public Desktop(Brand b) {
 super(b);
 }
 @Override
 public void sale() {
 super.sale();
 System.out.println("電腦類型為臺(tái)式電腦");
 }
}

class Laptop extends Computer{

 public Laptop(Brand b) {
 super(b);
 }
 public void sale() {
 super.sale();
 System.out.println("電腦類型為筆記本");
 }
}

class Pad extends Computer{

 public Pad(Brand b) {
 super(b);
 }
 @Override
 public void sale() {
 super.sale();
 System.out.println("電腦類型為平板電腦");
 }
}

public class Demo {
 public static void main(String[] args) {
 //銷(xiāo)售聯(lián)想筆記本
 Brand b = new Lenovo();
 Computer c = new Laptop(b);
 c.sale();
 
 //銷(xiāo)售dell臺(tái)式機(jī)
 Brand b1 = new Dell();
 Computer c1 = new Desktop(b1);
 c1.sale();
 }
}

通過(guò)上面的例子我們看出,我們將品牌(Brand)以對(duì)象的形式放到電腦分類的類里面,這樣就有效的降低了電腦的復(fù)雜度,而且是幾何降低,而且分兩個(gè)方向?qū)崿F(xiàn),還讓我們的思路更加清晰。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Java實(shí)現(xiàn)壓縮文件夾并打包下載

    使用Java實(shí)現(xiàn)壓縮文件夾并打包下載

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)壓縮文件夾并打包下載,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼

    easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼

    這篇文章主要介紹了easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Java實(shí)現(xiàn)的AES256加密解密功能示例

    Java實(shí)現(xiàn)的AES256加密解密功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的AES256加密解密功能,結(jié)合完整實(shí)例形式分析了Java實(shí)現(xiàn)AES256加密解密功能的步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • Java @Transactional與synchronized使用的問(wèn)題

    Java @Transactional與synchronized使用的問(wèn)題

    這篇文章主要介紹了Java @Transactional與synchronized使用的問(wèn)題,了解內(nèi)部原理是為了幫助我們做擴(kuò)展,同時(shí)也是驗(yàn)證了一個(gè)人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會(huì)的
    2023-01-01
  • 詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版

    詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版

    這篇文章主要介紹了詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java虛擬機(jī)JVM性能優(yōu)化(三):垃圾收集詳解

    Java虛擬機(jī)JVM性能優(yōu)化(三):垃圾收集詳解

    這篇文章主要介紹了Java虛擬機(jī)JVM性能優(yōu)化(三):垃圾收集詳解,本文講解了眾多的JVM垃圾收集器知識(shí)點(diǎn),需要的朋友可以參考下
    2014-09-09
  • JAVA驗(yàn)證碼工具實(shí)例代碼

    JAVA驗(yàn)證碼工具實(shí)例代碼

    這篇文章主要介紹了JAVA驗(yàn)證碼工具實(shí)例代碼,需要的朋友可以參考下
    2018-03-03
  • Spring源碼閱讀MethodInterceptor解析

    Spring源碼閱讀MethodInterceptor解析

    這篇文章主要為大家介紹了Spring源碼閱讀MethodInterceptor使用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Eclipse的Debug調(diào)試技巧大全(總結(jié))

    Eclipse的Debug調(diào)試技巧大全(總結(jié))

    這篇文章主要介紹了Eclipse的Debug調(diào)試技巧大全(總結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Java使用DSA密鑰對(duì)生成XML簽名的方法

    Java使用DSA密鑰對(duì)生成XML簽名的方法

    這篇文章主要介紹了Java使用DSA密鑰對(duì)生成XML簽名的方法,實(shí)例分析了java使用DSA密鑰對(duì)生成XML簽名的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03

最新評(píng)論

莱州市| 基隆市| 罗甸县| 谢通门县| 东宁县| 盐城市| 黄冈市| 毕节市| 南岸区| 昭苏县| 姚安县| 盖州市| 拉萨市| 高密市| 靖江市| 墨江| 安西县| 西平县| 金乡县| 苏尼特左旗| 沙雅县| 长寿区| 清涧县| 吴川市| 静安区| 哈密市| 贺州市| 西藏| 平阳县| 光山县| 简阳市| 公主岭市| 湄潭县| 大理市| 大兴区| 营口市| 桓台县| 灵宝市| 祁东县| 青龙| 特克斯县|