中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

建設網(wǎng)站前期準備工作河南品牌網(wǎng)絡推廣外包

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

介紹

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

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

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

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

實現(xiàn)

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

實現(xiàn)化角色

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

具體實現(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);
}

擴展化抽象角色

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("在線支付完成...");}
}

測試

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);}
}

在這里插入圖片描述

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

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

總結

優(yōu)點

  • 分離抽象和實現(xiàn)部分,使得它們可以獨立變化,從而增加了系統(tǒng)的靈活性和可擴展性.
  • 通過抽象接口來管理對象之間的關系,更加符合面向對象編程的原則,使得系統(tǒng)更加易于維護和理解.
  • 橋梁模式可以避免使用繼承造成的類爆炸問題,因為它似乎用了組合關系.

缺點

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

應用場景

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

相關文章:

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