<del id="nnjnj"></del><track id="nnjnj"></track>

<p id="nnjnj"></p>

<address id="nnjnj"></address>

    <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

      <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>

      • 自動秒收錄
      • 軟件:1973
      • 資訊:57811|
      • 收錄網站:279872|

      IT精英團

      [設計模式] Java設計模式-橋模式

      [設計模式] Java設計模式-橋模式

      瀏覽次數:
      評論次數:
      編輯: 溫瑜
      信息來源: ITPUB
      更新日期: 2022-09-09 22:20:07
      摘要

      目錄【設計模式】Java設計模式-橋接模式簡介橋接模式實例代碼示例①、品牌接口②、汽車品牌③、抽象汽車類④、汽車類型子類⑤、橋接模式測試1|1簡介橋接(Bridge)是用于把抽象化與實現化解耦,使

      • 正文開始
      • 相關閱讀
      • 推薦作品

      目錄【設計模式】Java設計模式-橋模式介紹示例代碼示例、品牌接口、汽車品牌、抽象汽車類、汽車類型子類、橋模式測試

      1|1簡介

      橋接用于從實現中分離抽象,以便它們可以獨立地改變。這種類型的設計模式屬于結構化模式,它通過在抽象和實現之間提供一個橋梁結構來分離抽象和實現。

      這種模式包含一個接口作為橋梁,使得實體類的功能獨立于接口實現類。這兩種類型的類可以在結構上進行更改,而不會相互影響。

      1|2橋接模式實例

      橋接模式:將實現和抽象放在兩個不同的類層次結構中,這樣它們就可以獨立更改。

      他的主要特點是把抽象和行為分開,并保持它們的獨立性和擴展性。

      以一輛車為例。車的品牌和種類很多,在擴展款式或者品牌的時候互不影響。我們可以把抽象部分和實現部分分開,讓它們都獨立變化,讓它們獨立變化,減少它們之間的耦合。

      UML圖:

      在這里插入圖片描述

      提供商標接口類,汽車品牌是他的實現類;汽車的類是抽象的,汽車的類是通過繼承抽象類分離出來的。

      1|3代碼示例

      代碼如下:

      、品牌接口

      包com . lyd . demo;

      /**

      * @Author: lyd

      * @Description:汽車品牌界面

      * @Date: 2022-08-28

      */

      公共界面品牌{

      void info();

      void open();

      void close();

      }

      、汽車品牌

      繼承汽車接口類

      包com . lyd . demo . car;

      導入com . lyd . demo . brand;

      /**

      * @Author: lyd

      * @Description:奔馳轎車

      * @Date: 2022-08-28

      */

      大眾級奔馳實現品牌{

      私有字符串類型;

      公共奔馳(串型){

      this.type=type

      }

      公共無效信息(){

      System.out.println('奔馳-'類型);

      }

      public void open() {

      System.out.println('奔馳');

      }

      公共void close() {

      System.out.println('奔馳');

      }

      }

      紅旗類也一樣,這里就不貼代碼了。詳細代碼稍后會上傳到github。

      、抽象汽車類

      通過聚合,利用構造方法進行實例化,得到品牌對象。

      包com . lyd . demo;

      /**

      * @Author: lyd

      * @Description:汽車抽象類

      * @Date: 2022-08-28

      */

      公共抽象類Car {

      自有品牌品牌;

      公共汽車(品牌品牌){

      this.brand=品牌;

      }

      公共無效信息(){

      this . brand . info();

      }

      public void open() {

      this . brand . open();

      }

      公共void close() {

      this . brand . close();

      }

      }

      、汽車類型子類

      繼承父類并重寫父類方法。這里也叫父類方法,簡單理解就是打印。

      包com . lyd . demo . type;

      導入com . lyd . demo . brand;

      導入com . lyd . demo . car;

      /**

      * @Author: lyd

      * @Description:新能源

      * @Date: 2022-08-28

      */

      公共級新能源推廣車{

      公共新能源(品牌){

      超級(品牌);

      }

      公共無效信息(){

      System.out.print('新能源型汽車-');

      super . info();

      }

      public void open() {

      System.out.print('新能源型汽車啟動-');

      super . open();

      }

      公共void close() {

      System.out.print('新能源型車輛封閉-');

      super.close()。

      }

      }

      、橋接模式測試

      通過新建汽車類型的方式獲取汽車對象,在其中可以獲取汽車的類型和品牌。

      包com . lyd . demo . bridge;

      導入com . lyd . demo . car;

      導入com . lyd . demo . car . benz;

      導入com . lyd . demo . car . hongqi;

      導入com . lyd . demo . type . new energy;

      導入com . lyd . demo . type . SUV;

      /**

      * @Author: lyd

      * @Description:測試

      * @Date: 2022-08-28

      */

      公共類橋測試{

      公共靜態void main(String[] args) {

      Car banz=新Suv(新奔馳(' GLA ');

      banz . info();

      banz . open();

      banz . close();

      汽車hq=new NewEnergy(新紅旗(' H5 ');

      HQ . info();

      HQ . open();

      HQ . close();

      }

      }

      運行結果:

      在這里插入圖片描述

      創作不易,如有錯誤請指正,感謝觀看!記住一鍵三通!

      德曉建議道:

      理解設計模式不是一件簡單的事情,需要不斷的學習和實踐才能理解。只有掌握了設計模式,才能真正理解SpringAOP和Mybatis的底層原理。讀者可以跟我一樣,敲代碼,甚至用不同的例子做,通過debug一步一步調試,看看別人的例子??梢詭兔α私庖幌?!謝謝觀看和指點!

      標簽:汽車 模式 類型
      在頭腦中扎根泛型的思想3354深刻理解泛型
      ? 上一篇 2022-09-09
      基于aiohttp的異步爬蟲python實戰
      下一篇 ? 2022-09-09
      • 如何在Ubuntu中保留文件系統并備份當前開發板鏡像
        0閱讀 0條評論 個贊
        在Ubuntu保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安……
      • 國產核心板全志T507助力消防系統升級
        0閱讀 0條評論 個贊
        9月16日下午,位于湖南長沙市區內的中國電信大樓發生火災,建筑高度218米,現場濃煙滾滾,數十層樓體燃燒劇烈。消防救援人員趕到現場后很快將火勢控制住,目前大樓火勢已被撲滅,所幸未發現人員傷亡。湖南電信……
      • 教大家如何處理Spring Boot易流中的用戶和群體!
        0閱讀 0條評論 個贊
        1.準備工作2.用戶操作2.1添加用戶2.2修改用戶2.3刪除用戶2.4查詢用戶3.組操作3.1添加組3.2修改組3.3刪除組3.4查詢組4.查看表詳情雖然說我們在實際開發中,……
      • 從PG15開始WAL壓縮優化
        0閱讀 0條評論 個贊
        PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,……
      • 深入了解美團葉子發射器開源方案
        0閱讀 0條評論 個贊
        大家好,我是樹哥。之前我們有聊過「如何設計一個分布式ID發號器」,其中有講過4種解決方案,分別是:UUID類雪花算法數據庫自增主鍵Redis原子自增美團以第2、3種解決方案為基礎,開發出……
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      • [設計模式] Java設計模式-橋模式
        0閱讀 0條評論 個贊
        目錄【設計模式】Java設計模式-橋接模式簡介橋接模式實例代碼示例①、品牌接口②、汽車品牌③、抽象汽車類④、汽車類型子類⑤、橋接模式測試1|1簡介橋接(Bridge)是用于把抽象化與實現化解耦,使……
      • i.MX8MQ自制背板無PCIe問題詳解
        9閱讀 0條評論 個贊
        在飛凌嵌入式OKMX8MQ-C開發板上有兩個PCIe接口,對應著兩個PCIe差分時鐘,兩路PCIe分別用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。很多使用FETMX8MQ-C核心板的用……
      • SQL Server表變量和臨時表的區別
        0閱讀 0條評論 個贊
        一、表變量表變量在SQLServer2000中首次被引入。表變量的具體定義包括列定義,列名,數據類型和約束。而在表變量中可以使用的約束包括主鍵約束,唯一約束,NULL約束和CHECK約束(外鍵……
      • 基于ASP.NET核心6.0的簡潔架構
        0閱讀 0條評論 個贊
        背景最近嘗試錄制了一個系列視頻:《ASP.NETCore6.0+Vue.js3實戰開發》,本節是視頻內部整潔架構的理論和實戰的文字稿。因為在錄制之前,我通常會編寫完整的文字內容作為視頻文案,這……
      • MySQL查詢性能優化指數下推的七大武器
        0閱讀 0條評論 個贊
        前面已經講了MySQL的其他查詢性能優化方式,沒看過可以去了解一下:MySQL查詢性能優化七種武器之索引潛水MySQL查詢性能優化七種武器之鏈路追蹤今天要講的是MySQL的另一種查詢性能優化方式—索……
      • Python條件語句的用法
        0閱讀 0條評論 個贊
        python條件語句使用if表達式,難度不高,需要注意的是嵌套用法,以及如何設置對應的條件。if條件判斷語句python語句是按固定順序執行的,先執行前面的語句,再執行后面的語句。如果你像要程……
      • 關于這個能見度的例子 網上95%的文章都是錯的!
        0閱讀 0條評論 個贊
        你好,我是坤哥上周我在查閱資料時無意中搜到一篇解釋volatile用法的博文,這篇博文排得很靠前,不過很遺憾,雖然結論是對的,但分析過程完全錯誤,而且我發現網上很多文章都用這個例子來解釋vola……
      • 記錄在線超時的分析和故障排除過程
        0閱讀 0條評論 個贊
        .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
      • 碼頭工人日常工作的常用命令
        0閱讀 0條評論 個贊
        容器生命周期管理Docker創建新容器并運行[run]語法:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]OPTIONS說明:-astdin:指定標準輸入……
      • 數據庫發展史1-傳統數據庫
        0閱讀 0條評論 個贊
        1946年,美國賓夕法尼亞大學誕生了人類第一臺電子計算機--ENIAC(ElectronicNumericalIntegratorAndComputer,即電子數字積分計算機),這個占地170……
      • 圖解架構| SaaS、PaaS、IaaS
        0閱讀 0條評論 個贊
        這是悟空的第164篇原創文章官網:www.passjava.cn你好,我是悟空哥。上次聊到了架構圖如何畫,其中涉及到了云服務的架構圖,里面提到了很重要的三個概念PaaS、IaaS、SaaS,很有必要……
      • ASP.NET核心6框架揭示示例演示[34]:緩存整個響應內容
        0閱讀 0條評論 個贊
        我們利用ASP.NET開發的大部分API都是為了對外提供資源,對于不易變化的資源內容,針對某個維度對其實施緩存可以很好地提供應用的性能?!秲却婢彺媾c分布式緩存的使用》介紹的兩種緩存框架(本地內存緩存和……
      • 全志A40i核心板全國產化 照亮動力設備國產化之路
        1閱讀 0條評論 個贊
        國產化三個字近幾年來在電力行業內很火,新的設備、新的項目都開始有國產化的趨勢,要求自主可控,然而很多人只是泛泛地去看待“國產化”這三個字而沒有去深究它的重要性。自主可控有多重要?今天,我們就來認真地聊……
      • 如何在C#程序中注入惡意DLL?
        6閱讀 0條評論 個贊
        一:背景前段時間在訓練營上課的時候就有朋友提到一個問題,為什么Windbg附加到C#程序后,程序就處于中斷狀態了?它到底是如何實現的?其實簡而言之就是線程的遠程注入,這一篇就展開說一下。二:……
      • Java可以重新鎖定的那些東西(1)
        0閱讀 0條評論 個贊
        本文主要包含的內容:可重入鎖(ReedtrantLock)、公平鎖、非公平鎖、可重入性、同步隊列、CAS等概念的理解顯式鎖……
      • 《2022 分布式數據庫發展趨勢研究報告》的解釋
        9閱讀 0條評論 個贊
        分布式數據庫近年來廣受關注,目前,對分布式數據庫的討論,已經從什么是分布式數據庫,為什么要用分布式數據庫,轉變為怎樣規劃應用分布式數據庫。但分布式數據庫有3條不同的技術路線,這無疑增加了選型難度,到底……
      • [PostgreSql]生產級數據庫安裝需要考慮哪些問題?
        0閱讀 0條評論 個贊
        大家好,我是字母哥(coder)!我讓公司的小伙伴寫一個生產級別的PostgreSQL的安裝文檔,結果他和我說:“不是用一個命令就能安裝好么?還用寫文檔么?”。我知道他想說的是這個命令:yumins……
      • 如何在Ubuntu中保留文件系統并備份當前開發板鏡像
        0閱讀 0條評論 個贊
        在Ubuntu保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安……
      • :自古以來 特工程序就是兵家必敗之地
        0閱讀 0條評論 個贊
        正向代理的血案前幾天打算使用golang做一個代理程序,golang標準庫net/http/httputil已經提供了這樣的能力。一把梭之后發現必然返回403Forbidden,我直接在targe……
      • SQL Server動態生成分區腳本
        0閱讀 0條評論 個贊
        一、前言前段時間使用表分區比較多,雖然已經寫了SQLServer合并(刪除)分區解惑、SQLServer2005分區模板與實例,但是在實踐中一直感覺修改SQL腳本的時間比較多,一直想抽個時間來把……
      最近發布資訊
      更多
      警花高潮嗷嗷叫
      <del id="nnjnj"></del><track id="nnjnj"></track>

      <p id="nnjnj"></p>

      <address id="nnjnj"></address>

        <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

          <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>