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設計模式橋接
- 小白設計模式:橋接模式設計模式橋接
- 設計模式之橋接模式設計模式橋接
- 設計模式(八)——橋接模式設計模式橋接
- 設計模式之【橋接模式】設計模式橋接
- javascript設計模式橋接模式JavaScript設計模式橋接
- 設計模式(十二):橋接模式設計模式橋接
- PHP 設計模式之橋接模式PHP設計模式橋接
- GoLang設計模式19 - 橋接模式Golang設計模式橋接
- Java設計模式(7)----------橋接模式Java設計模式橋接
- 設計模式 | 橋接模式(bridge)設計模式橋接
- 極簡設計模式-橋接模式設計模式橋接
- Python設計模式-橋接模式Python設計模式橋接
- 大話設計模式—橋接模式設計模式橋接
- 設計模式之橋接設計模式橋接
- 設計模式(七)橋接設計模式橋接
- 設計模式之旅12--橋接模式設計模式橋接
- Java設計模式之(六)——橋接模式Java設計模式橋接
- 23種設計模式(9)- 橋接模式設計模式橋接
- 設計模式系列 11-- 橋接模式設計模式橋接
- Android設計模式之橋接模式Android設計模式橋接
- java設計模式之一 橋接模式Java設計模式橋接
- 我學設計模式 之 橋接模式設計模式橋接
- 設計模式學習-裝飾模式,橋接模式設計模式橋接
- 《設計模式》 - 6. 橋接模式( Bridge )設計模式橋接
- 設計模式(十三)----結構型模式之橋接模式設計模式橋接
- 10.橋接模式設計思想橋接模式
- C#設計模式-橋接模式(Bridge Pattern)C#設計模式橋接
- C#設計模式系列:橋接模式(Bridge)C#設計模式橋接
- JAVA設計模式之 橋接模式【Bridge Pattern】Java設計模式橋接
- 設計模式--橋接模式Bridge(結構型)設計模式橋接
- 設計模式(五)橋接模式Bridge == Pointer To Implementation設計模式橋接
- 跟著GPT學設計模式之橋接模式GPT設計模式橋接
- 橋接模式橋接模式
- 從零開始學設計模式(七)—橋接模式設計模式橋接
- 設計模式學習-使用go實現橋接模式設計模式Go橋接