桥接模式(Bridge)-Java

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


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



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









package ding.study.designpatterns.bridge;

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



package ding.study.designpatterns.bridge;
/**
 * 手机软件-通讯录
 * @author daniel
 * @email 576699909@qq.com
 * @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 576699909@qq.com
 * @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 576699909@qq.com
 * @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 576699909@qq.com
 * @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 576699909@qq.com
 * @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





  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dingsai88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值