桥接模式(Bridge)-Java

以前百度空间写的全没了,全部重写一遍


【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。



桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。






桥接模式(Bridge)-Java_第1张图片



package ding.study.designpatterns.bridge;

/**
 * 手机软件接口
 * 
 * @author daniel
 * @email [email protected]
 * @time 2016-5-26 上午11:45:16
 */
public interface PhoneSoft {
	public void run();
}



package ding.study.designpatterns.bridge;
/**
 * 手机软件-通讯录
 * @author daniel
 * @email [email protected]
 * @time 2016-5-26 上午11:47:12
 */
public class PhoneSoftAddressList implements PhoneSoft {

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

	}

}


package ding.study.designpatterns.bridge;
/**
 * 手机软件实现类-打游戏
 * @author daniel
 * @email [email protected]
 * @time 2016-5-26 上午11:46:17
 */
public class PhoneSoftGame implements PhoneSoft {

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

	}

}



package ding.study.designpatterns.bridge;
/**
 * 手机品牌抽象类
 * @author daniel
 * @email [email protected]
 * @time 2016-5-26 上午11:52:09
 */
public abstract class PhoneBrand {
/**
 * 手机软件
 */
	protected PhoneSoft phoneSoft ;
	public void setPhoneSoft(PhoneSoft phoneSoft){
		this.phoneSoft=phoneSoft;
	}
	/**
	 * 运行软件
	 * @author daniel
	 * @time 2016-5-26 上午11:52:03
	 */
	public abstract void run(); 
	
}

package ding.study.designpatterns.bridge;
/**
 * iphone4手机品牌
 * @author daniel
 * @email [email protected]
 * @time 2016-5-26 下午12:46:49
 */
public class PhoneBrandIphone4 extends PhoneBrand {

	@Override
	public void run() {
		System.out.println("Iphone4运行");
		 this.phoneSoft.run();
	}

}

package ding.study.designpatterns.bridge;
/**
 * phone5手机品牌
 * @author daniel
 * @email [email protected]
 * @time 2016-5-26 下午12:47:00
 */
public class PhoneBrandIphone5 extends PhoneBrand {

	@Override
	public void run() {
		System.out.println("Iphone5运行");
		 this.phoneSoft.run();
	}

}

package ding.study.designpatterns.bridge;

public class Zmain {

	/**
	 * 【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
	 * 桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
	 * @author daniel
	 * @time 2016-5-26 下午12:42:52
	 * @param args
	 */
	public static void main(String[] args) {

		PhoneBrandIphone5 i5 = new PhoneBrandIphone5();
		i5.setPhoneSoft(new PhoneSoftGame());
		i5.run();
		i5.setPhoneSoft(new PhoneSoftAddressList());
		i5.run();
		

		PhoneBrandIphone4 i4 = new PhoneBrandIphone4();
		i4.setPhoneSoft(new PhoneSoftGame());
		i4.run();
		i4.setPhoneSoft(new PhoneSoftAddressList());
		i4.run();
		
		
		
	}

}

输出结果


源码:https://github.com/dingsai88/StudyTest/tree/master/src/ding/study/designpatterns/bridge





你可能感兴趣的:(桥接模式(Bridge)-Java)