1. 程式人生 > >【JAVA設計模式】橋接模式

【JAVA設計模式】橋接模式

一、定義

橋接模式將抽象部分與它的實現部分分離,使它們都可以獨立的變化。這裡的實現指的是抽象類和它的派生類用來實現自己的物件。通俗點的理解,實現系統可能有多角度分類,每一種分類都有可能變化,那麼九八這種多角度分離出來讓它們獨立變化,減少它們之間的耦合。

二、UML類圖

橋接模式UML類圖

三、實現

  • 抽象類
package com.jthao.design.des.bridge;

public abstract class HandBrand {

	protected HandSoft handSoft;

	public void setHandSoft(HandSoft handSoft)
{ this.handSoft = handSoft; } public abstract void run(); }
  • 具體實現類A
package com.jthao.design.des.bridge;

public class HandBrandM extends HandBrand {

	@Override
	public void run() {
		handSoft.run();
	}

}
  • 具體實現類B
package com.jthao.design.des.bridge;

public class HandBrandN
extends HandBrand { @Override public void run() { handSoft.run(); } }
  • 引用類
package com.jthao.design.des.bridge;

public abstract class HandSoft {

	public abstract void run();

}
  • 具體產品類A
package com.jthao.design.des.bridge;

public class HandAddress extends HandSoft {

	@Override
public void run() { System.out.println("通訊錄"); } }
  • 具體產品類B
package com.jthao.design.des.bridge;

public class HandGame extends HandSoft {

	@Override
	public void run() {
		System.out.println("遊戲");
	}

}
  • 測試類
package com.jthao.design.des.bridge;

public class Test {

	public static void main(String[] args) {
		HandBrand hBrand = new HandBrandM();
		hBrand.setHandSoft(new HandGame());
		hBrand.run();
		
		hBrand = new HandBrandN();
		hBrand.setHandSoft(new HandAddress());
		hBrand.run();
	}

}