国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

建設(shè)網(wǎng)站前期準(zhǔn)備工作河南品牌網(wǎng)絡(luò)推廣外包

建設(shè)網(wǎng)站前期準(zhǔn)備工作,河南品牌網(wǎng)絡(luò)推廣外包,開發(fā)公司向政府申請(qǐng)延期交付,青島網(wǎng)站建設(shè)培訓(xùn)學(xué)校介紹 Java橋梁模式(也稱橋接模式)(Bridge Pattern)是一種設(shè)計(jì)模式,它將抽象和實(shí)現(xiàn)分離,使它們可以獨(dú)立地變化.它通過一個(gè)大類或者一系列緊密關(guān)聯(lián)的類拆分成兩個(gè)獨(dú)立的層次結(jié)構(gòu)來實(shí)現(xiàn)這種分離,其中一個(gè)層次結(jié)構(gòu)包含抽象類或接口,另一個(gè)層次結(jié)構(gòu)包含實(shí)現(xiàn)類.橋梁模式使得抽象類和…

介紹

Java橋梁模式(也稱橋接模式)(Bridge Pattern)是一種設(shè)計(jì)模式,它將抽象和實(shí)現(xiàn)分離,使它們可以獨(dú)立地變化.它通過一個(gè)大類或者一系列緊密關(guān)聯(lián)的類拆分成兩個(gè)獨(dú)立的層次結(jié)構(gòu)來實(shí)現(xiàn)這種分離,其中一個(gè)層次結(jié)構(gòu)包含抽象類或接口,另一個(gè)層次結(jié)構(gòu)包含實(shí)現(xiàn)類.橋梁模式使得抽象類和實(shí)現(xiàn)類可以獨(dú)立地變化,從而實(shí)現(xiàn)了松耦合.

在Java中,橋梁模式通常使用接口來定義抽象部分,使用抽象類來實(shí)現(xiàn)部分實(shí)現(xiàn),并將它們通過組合的方式組合起來.抽象部分包含一個(gè)只想實(shí)現(xiàn)部分的引用,實(shí)現(xiàn)部分實(shí)現(xiàn)了抽象部分定義的接口.

Java橋梁模式分為以下四種角色:

  1. 抽象化角色(Abstraction):定義抽象化的接口,維護(hù)一個(gè)指向?qū)崿F(xiàn)化對(duì)象的引用.
  2. 擴(kuò)展抽象化角色(Refined Abstraction):擴(kuò)展抽象化角色,通常是抽象化角色的子類,實(shí)現(xiàn)抽象化角色中的業(yè)務(wù)方法.
  3. 實(shí)現(xiàn)化角色(Implementor):定義實(shí)現(xiàn)化角色的接口,這個(gè)接口不一定要與抽象化角色的接口完全一致,事實(shí)上,這兩個(gè)接口可以完全不同.
  4. 具體實(shí)現(xiàn)化角色(Concrete Implementor):具體實(shí)現(xiàn)化角色實(shí)現(xiàn)實(shí)現(xiàn)化角色接口,并完成具體的業(yè)務(wù)邏輯.

實(shí)現(xiàn)

例如,在電商網(wǎng)站中,可能需要支持多種支持方式,如支付寶,微信支付和銀聯(lián)支付等.使用橋梁模式可以輕松地添加或切換不同的支付方式,以滿足用戶的需求.

實(shí)現(xiàn)化角色

public interface PaymentImplementor {/*** 支付** @param amount*/void processPayment(double amount);
}

具體實(shí)現(xiàn)化角色

public class AliPaymentImplementor implements PaymentImplementor {/*** 支付** @param amount*/@Overridepublic void processPayment(double amount) {System.out.println("支付寶支付:" + amount + "元...");}
}public class WechatPaymentImplementor implements PaymentImplementor {/*** 支付** @param amount*/@Overridepublic void processPayment(double amount) {System.out.println("微信支付:" + amount + "元...");}
}public class UnionpayPaymentImplementor implements PaymentImplementor {/*** 支付** @param amount*/@Overridepublic void processPayment(double amount) {System.out.println("銀聯(lián)支付:" + amount + "元...");}
}

抽象化角色

public abstract class Payment {protected PaymentImplementor implementor;public Payment(PaymentImplementor implementor) {this.implementor = implementor;}/*** 支付** @param amount*/public abstract void pay(double amount);
}

擴(kuò)展化抽象角色

public class OnlinePayment extends Payment{public OnlinePayment(PaymentImplementor implementor) {super(implementor);}/*** 支付** @param amount*/@Overridepublic void pay(double amount) {System.out.println("開始在線支付...");implementor.processPayment(amount);System.out.println("在線支付完成...");}
}

測(cè)試

public class Demo {public static void main(String[] args) {// 支付寶支付PaymentImplementor paymentImplementor = new AliPaymentImplementor();Payment payment = new OnlinePayment(paymentImplementor);payment.pay(100);System.out.println();// 微信支付paymentImplementor = new WechatPaymentImplementor();payment = new OnlinePayment(paymentImplementor);payment.pay(101);System.out.println();// 銀聯(lián)支付paymentImplementor = new UnionpayPaymentImplementor();payment = new OnlinePayment(paymentImplementor);payment.pay(102);}
}

在這里插入圖片描述

這段代碼是一個(gè)簡(jiǎn)單的實(shí)現(xiàn)了橋梁模式的示例.其中,Payment是抽象類,OnlinePayment是其子類,PaymentImplementor是接口,AliPaymentImplementor,UnionpayPaymentImplementor和WechatPaymentImplementor都是其實(shí)現(xiàn)類.通過這種方式,Payment類PayImplementor接口被解耦,可以獨(dú)立地發(fā)展和擴(kuò)展.

在這個(gè)示例中,Payment類是抽象化,不能被實(shí)例化,而是通過OnlinePayment子類進(jìn)行實(shí)例化.OnlinePayment子類重寫了pay方法,并調(diào)用implementor.processPayment方法,該方法由實(shí)現(xiàn)PaymentImplementor接口的類來是心啊,例如,AliPaymentImplementor,UnionpayPaymentImplementor和WechatPaymentImplementor.這種方式使得PaymentImplementor接口的實(shí)現(xiàn)類可以動(dòng)態(tài)地注入到OnlinePayment類中,從而實(shí)現(xiàn)了不同的支付方式,而不需要修改OnlinePayment類.

總結(jié)

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

  • 分離抽象和實(shí)現(xiàn)部分,使得它們可以獨(dú)立變化,從而增加了系統(tǒng)的靈活性和可擴(kuò)展性.
  • 通過抽象接口來管理對(duì)象之間的關(guān)系,更加符合面向?qū)ο缶幊痰脑瓌t,使得系統(tǒng)更加易于維護(hù)和理解.
  • 橋梁模式可以避免使用繼承造成的類爆炸問題,因?yàn)樗坪跤昧私M合關(guān)系.

缺點(diǎn)

  • 橋梁模式增加了系統(tǒng)的復(fù)雜性,需要額外的抽象層,可能會(huì)導(dǎo)致系統(tǒng)的設(shè)計(jì)變得復(fù)雜.
  • 如果不恰當(dāng)?shù)卦O(shè)計(jì)橋梁接口和實(shí)現(xiàn)類,可能會(huì)導(dǎo)致系統(tǒng)的耦合度增加.

應(yīng)用場(chǎng)景

  • 當(dāng)一個(gè)類具有多個(gè)變化維度(例如,一個(gè)形狀類有不同的顏色和尺寸)時(shí),可以使用橋梁模式來將它們分離開來,從而使得系統(tǒng)更加靈活.
  • 當(dāng)需要支持不同平臺(tái),數(shù)據(jù)庫或協(xié)議時(shí),可以使用橋梁模式來封裝這些實(shí)現(xiàn)細(xì)節(jié),使得客戶端和實(shí)現(xiàn)部分可以獨(dú)立變化,而不影響彼此.
  • 當(dāng)需要運(yùn)行時(shí)動(dòng)態(tài)地切換實(shí)現(xiàn)時(shí),可以使用橋梁模式來實(shí)現(xiàn)這種切換.
http://m.aloenet.com.cn/news/42979.html

相關(guān)文章:

  • wordpress 主題設(shè)計(jì)百度seo自動(dòng)優(yōu)化
  • 網(wǎng)站建設(shè)經(jīng)驗(yàn)總結(jié)百度今日小說搜索風(fēng)云榜
  • 湘潭企業(yè)網(wǎng)站建設(shè)微信推廣多少錢一次
  • 靜態(tài)網(wǎng)站開發(fā)預(yù)期效果經(jīng)典軟文
  • 怎么幫公司做網(wǎng)站建設(shè)如何創(chuàng)建公司網(wǎng)站
  • 找工程承包app排名優(yōu)化seo
  • 建設(shè)銀行個(gè)人官方網(wǎng)站百度應(yīng)用app下載
  • 多語言網(wǎng)站怎么實(shí)現(xiàn)的推廣公眾號(hào)的9種方法
  • 網(wǎng)站的內(nèi)連接如何做天津百度推廣公司
  • 網(wǎng)站域名備案seo網(wǎng)址大全
  • 在日本怎樣做網(wǎng)站網(wǎng)站建設(shè)詳細(xì)方案
  • 上海新聞官網(wǎng)東莞百度seo電話
  • 網(wǎng)站上做的圖片不清晰是怎么回事推廣技術(shù)
  • 做網(wǎng)站美工工資多少地推團(tuán)隊(duì)如何收費(fèi)
  • 一般的web網(wǎng)站開發(fā)平臺(tái)是色盲測(cè)試圖免費(fèi)測(cè)試
  • 做網(wǎng)站鏈接容易嗎營(yíng)銷推廣費(fèi)用預(yù)算表
  • 網(wǎng)站優(yōu)化試卷chrome谷歌瀏覽器官方下載
  • 泉州網(wǎng)站建設(shè)公司招聘銷售seo網(wǎng)站有優(yōu)化培訓(xùn)班嗎
  • 常見的網(wǎng)站類型濟(jì)南做seo的公司排名
  • 織夢(mèng)網(wǎng)站程序模板百度網(wǎng)盤客服人工電話95188
  • 自己做的網(wǎng)站如何加視頻免費(fèi)推廣平臺(tái)
  • 深圳便宜做網(wǎng)站朝陽seo推廣
  • 泗陽住房建設(shè)局網(wǎng)站關(guān)鍵詞查找的方法有以下幾種
  • 為什么大公司開發(fā)網(wǎng)站今日頭條seo
  • 外文網(wǎng)站制作百度快照推廣效果怎樣
  • 做框架圖的網(wǎng)站seo同行網(wǎng)站
  • 網(wǎng)頁模版圖片seo在線診斷工具
  • 合肥行業(yè)網(wǎng)站建設(shè)成都網(wǎng)絡(luò)營(yíng)銷公司哪家好
  • 網(wǎng)站開發(fā)論壇樣式新品推廣活動(dòng)方案
  • 網(wǎng)頁設(shè)計(jì)與網(wǎng)站開發(fā)第三版課后答案百度提問登錄入口