java23种设计模式四(连载)

69 阅读1分钟

四、桥接模式

****桥接模式关注抽象的设计,顾名思义,你可以创建一个桥,然后把这些抽象方法移到接口中。这样,抽象就将依赖于接口的实现。

桥接模式的意图是将抽象与抽象方法的实现相互分离来实现解耦,以便二者可以相互独立的变化。

****桥接模式的好处:优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务上,这样类和类继承层次会保持较小规模,并且不大可能增长为不可控制的庞然大物。

下面是示例代码:

/**
 * 手机软件
 * @author ripper
 *
 */
public abstract class HandsetSoft {

	public abstract void run();
}

\

/**
 * 手机游戏
 * @author ripper
 *
 */
public class HandsetGame extends HandsetSoft {

	@Override
	public void run() {
		System.out.println("运行手机游戏");
	}

}

\

public class HandsetAddressList extends HandsetSoft {

	@Override
	public void run() {
		System.out.println("运行手机通讯录!");
	}

}

\

/**
 * 手机品牌
 * @author ripper
 *
 */
public abstract class HandsetBrand {

	public abstract void run();
	
	protected HandsetSoft soft;
	
	public HandsetBrand(HandsetSoft soft){
		this.soft = soft;
	}
	
	public HandsetBrand() {
	}

	public void setSoft(HandsetSoft soft) {
		this.soft = soft;
	}
	
	public HandsetSoft getSoft() {
		return soft;
	}
}

\

/**
 * 手机品牌M
 * @author ripper
 *
 */
public class HandsetBrandM extends HandsetBrand {

	public HandsetBrandM(){
		System.out.println("M型手机");
	}
	
	@Override
	public void run() {
		soft.run();
	}

}

\

/**
 * 手机品牌N
 * @author ripper
 *
 */
public class HandsetBrandN extends HandsetBrand {

	public HandsetBrandN(){
		System.out.println("N型手机");
	}
	
	@Override
	public void run() {
		soft.run();
	}

}


**
**