9.設計模式-橋接模式
所謂橋接模式即為搭建中間關係的一種模式。舉個網上比較流行的例子。如果我們要畫一種畫,需要大中小三種筆,紅,藍,黃,綠,紫五種顏色。那如果我是準備彩筆的話,我得準備多少支筆呢?我得準備3*5=15種吧。也就是大的需要準備五種顏色的筆,中的也要準備五種顏色的筆,小的也要準備五種顏色的筆。但如果我用毛筆+墨硯呢?那隻需要3支筆,5種顏色的墨硯,我大的畫完一種顏色,洗了,又塗抹另外一種顏色畫。這樣就只需要3+5=8個材料。造成第一種需要15中材料的原因是什麼呢?就是因為筆本身和顏色本身耦合在一起了。這個在程式碼中就說明了類和其實現的功能耦合在一起了。那麼為了解耦,我們只需要進行一個引用,就達到了拆分的目的。
定義一個color介面
public interface Color {
void drawColor();
}
定義其實現
public class GreenColor implements Color {
@Override
public void drawColor() {
System.out.println("我能畫綠色");
}
}
public class BlackColor implements Color {
@Override
public void drawColor() {
System.out.println("我能畫黑色");
}
}
public class RedColor implements Color {
@Override
public void drawColor() {
System.out.println("我能畫紅色.....");
}
}
定義一個筆的抽象類
在抽象類裡面引用顏色介面,供實現類不同的呼叫方法。
public abstract class Pen {
public Color color;
public void setColor(Color color){
this.color=color;
}
public abstract void draw();
}
public class BigPen extends Pen {
@Override
public void draw() {
System.out.println("我是一支大筆");
color.drawColor();
}
}
public class MidPen extends Pen {
@Override
public void draw() {
System.out.println("我是一支中性筆");
color.drawColor();
}
}
public class SmallPen extends Pen{
@Override
public void draw() {
System.out.println("我是一支小筆");
color.drawColor();
}
}
public class MainTest {
public static void main(String[] args) {
Pen pen = new BigPen();
Color redColor = new RedColor();
Color blackColor = new BlackColor();
pen.setColor(redColor);
pen.draw();
System.out.println("............");
pen.setColor(blackColor);
pen.draw();
}
}
我是一支大筆
我能畫紅色.....
............
我是一支大筆
我能畫黑色
相關文章
- 設計模式-橋接模式設計模式橋接
- Java設計模式-橋接模式Java設計模式橋接
- 設計模式 | 橋接模式(bridge)設計模式橋接
- 小白設計模式:橋接模式設計模式橋接
- 設計模式之【橋接模式】設計模式橋接
- 設計模式(八)——橋接模式設計模式橋接
- 設計模式之橋接模式設計模式橋接
- PHP 設計模式之橋接模式PHP設計模式橋接
- 極簡設計模式-橋接模式設計模式橋接
- GoLang設計模式19 - 橋接模式Golang設計模式橋接
- Java設計模式(7)----------橋接模式Java設計模式橋接
- 設計模式(七)橋接設計模式橋接
- 設計模式之橋接設計模式橋接
- 《設計模式》 - 6. 橋接模式( Bridge )設計模式橋接
- 設計模式之旅12--橋接模式設計模式橋接
- Java設計模式之(六)——橋接模式Java設計模式橋接
- 設計模式學習-裝飾模式,橋接模式設計模式橋接
- C#設計模式-橋接模式(Bridge Pattern)C#設計模式橋接
- 設計模式(十三)----結構型模式之橋接模式設計模式橋接
- 10.橋接模式設計思想橋接模式
- 跟著GPT學設計模式之橋接模式GPT設計模式橋接
- 從零開始學設計模式(七)—橋接模式設計模式橋接
- 設計模式學習-使用go實現橋接模式設計模式Go橋接
- 設計模式:橋接模式及程式碼示例、橋接模式在jdbc中的體現、注意事項設計模式橋接JDBC
- 設計模式 第七章 橋接模式、裝飾者模式、組合模式設計模式橋接
- 設計模式學習筆記(九)橋接模式及其應用設計模式筆記橋接
- 設計模式 - Bridge 橋模式設計模式
- 結構型模式:橋接模式模式橋接
- Java進階篇設計模式之四 -----介面卡模式和橋接模式Java設計模式橋接
- 08_橋接模式橋接模式
- JavaScript面試系列:JavaScript設計模式之橋接模式和懶載入JavaScript面試設計模式橋接
- 使用橋接模式設計複雜的訊息系統橋接模式
- c#橋接模式詳解C#橋接模式
- 橋接模式(c++實現)橋接模式C++
- 小白都能懂的設計模式 java版 橋接模式具體實現(超詳細)設計模式Java橋接
- 【設計模式】第七篇:和我一起簡單認識橋接模式設計模式橋接
- PHP DIY 系列------框架篇:9. 設計模式PHP框架設計模式
- 將Vmware中配置成橋接模式橋接模式