橋接模式的目標是使對象的抽象部分與實現部分分離,使之可以分別獨立變化,以盡量避免產生耦合。
下圖以繪制圓形為例:圓形的顏色通過接口類DrawAPI及其2個實現類RedCircle以及GreenCircle實現;圓形的坐標以及半徑通過抽象類及其擴展類實現,在實現draw()方法時,直接使用DrawAPI類中的相關對象的drawCircle方法。
DrawAPI接口類:
package bridge;
public interface DrawAPI {
public void drawCircle(int radius, int x, int y);
}
RedCircle實現類:
package bridge;
public class RedCircle implements DrawAPI{
@Override
public void drawCircle(int radius, int x, int y) {
System.out.println("畫紅色圓,半徑"+radius+",坐標:x="+x+",y="+y);
}
}
GreenCircle實現類:
package bridge;
public class GreenCircle implements DrawAPI{
@Override
public void drawCircle(int radius, int x, int y) {
System.out.println("畫綠色圓,半徑"+radius+",坐標:x="+x+",y="+y);
}
}
Shape抽象類:
package bridge;
public abstract class Shape {
protected DrawAPI drawAPI;
protected Shape(DrawAPI drawAPI) {
this.drawAPI=drawAPI;
}
public abstract void draw();
}
Circle擴展類:
package bridge;
public class Circle extends Shape{
int x, y, radius;
public Circle(DrawAPI drawAPI,int x,int y,int radius) {
super(drawAPI);
this.x=x;
this.y=y;
this.radius=radius;
}
@Override
public void draw() {
drawAPI.drawCircle(radius, x, y);
}
}
主函數調用方式:
package main;
import bridge.*;
public class BridgePattern {
public static void main(String[] args) {
Shape redCircle =new Circle(new RedCircle(),10,10,5);
Shape greenCircle = new Circle(new GreenCircle(),20,20,6);
redCircle.draw();
greenCircle.draw();
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
耦合器
+關注
關注
8文章
725瀏覽量
59691 -
API接口
+關注
關注
1文章
84瀏覽量
10437
發布評論請先 登錄
相關推薦
關于橋接模式遇到的問題
VMware使用橋接模式,已經手動設置ip地址和主機ip同一網段,但是ifconfig顯示的ip地址卻和vmnet8(NAT)同一網段?怎么解決?
發表于 10-16 15:06
網橋和橋接,網橋和橋接是什么意思
網橋和橋接,網橋和橋接是什么意思
網橋(Bridge)也稱橋接器,是連接兩個局域網的存儲轉發設備,用它可以完成具有相同或相似體系
發表于 03-20 16:03
?1.3w次閱讀
橋接模式應用場景
1、什么是橋接模式? Decouple an abstraction from its implementation so that the two can vary independently.
無線橋接和mesh組網哪個好?
無線橋接和Mesh組網都是用于擴展無線網絡覆蓋范圍的技術,但它們的工作原理和應用場景有所不同。 無線橋接通常是一對一的連接,相對較容易設置和維護。它的優點在于簡單性,適用于需要建立點對點連接的場景
路由器橋接路由器怎樣橋接 路由器橋接好還是中繼好
路由器橋接和中繼是常用的網絡擴展方式,用于擴大網絡覆蓋范圍,提供更好的網絡連接。這兩種方式在不同的場景下有著各自的優勢,下面將詳細介紹如何橋接路由器,以及
評論