您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Java怎么實現(xiàn)橋接模式”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Java怎么實現(xiàn)橋接模式”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
橋接模式(Bridge Pattern)是用于把抽象化與實現(xiàn)化解耦,使得二者可以獨立變化。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它通過提供抽象化和實現(xiàn)化之間的橋接結(jié)構(gòu),來實現(xiàn)二者的解耦。這種模式涉及到一個作為橋接的接口,使得實體類的功能獨立于接口實現(xiàn)類。這兩種類型的類可被結(jié)構(gòu)化改變而互不影響。
我們有一個作為橋接實現(xiàn)的 DrawAPI 接口和實現(xiàn)了 DrawAPI 接口的實體類 RedCircle、GreenCircle。Shape 是一個抽象類,將使用 DrawAPI 的對象。BridgePatternDemo,我們的演示類使用 Shape 類來畫出不同顏色的圓。
創(chuàng)建橋接實現(xiàn)接口。
DrawAPI.java public interface DrawAPI { public void drawCircle(int radius, int x, int y); }
創(chuàng)建實現(xiàn)了 DrawAPI 接口的實體橋接實現(xiàn)類。
RedCircle.java public class RedCircle implements DrawAPI { @Override public void drawCircle(int radius, int x, int y) { System.out.println("Drawing Circle[ color: red, radius: " + radius +", x: " +x+", "+ y +"]"); } } GreenCircle.java public class GreenCircle implements DrawAPI { @Override public void drawCircle(int radius, int x, int y) { System.out.println("Drawing Circle[ color: green, radius: " + radius +", x: " +x+", "+ y +"]"); } }
使用 DrawAPI 接口創(chuàng)建抽象類 Shape。
Shape.java public abstract class Shape { protected DrawAPI drawAPI; protected Shape(DrawAPI drawAPI){ this.drawAPI = drawAPI; } public abstract void draw(); }
創(chuàng)建實現(xiàn)了 Shape 接口的實體類。
Circle.java public class Circle extends Shape { private int x, y, radius; public Circle(int x, int y, int radius, DrawAPI drawAPI) { super(drawAPI); this.x = x; this.y = y; this.radius = radius; } public void draw() { drawAPI.drawCircle(radius,x,y); } }
使用 Shape 和 DrawAPI 類畫出不同顏色的圓。
BridgePatternDemo.java public class BridgePatternDemo { public static void main(String[] args) { Shape redCircle = new Circle(100,100, 10, new RedCircle()); Shape greenCircle = new Circle(100,100, 10, new GreenCircle()); redCircle.draw(); greenCircle.draw(); } }
執(zhí)行程序,輸出結(jié)果:
Drawing Circle[ color: red, radius: 10, x: 100, 100] Drawing Circle[ color: green, radius: 10, x: 100, 100]
讀到這里,這篇“Java怎么實現(xiàn)橋接模式”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。