您的位置:首页 > 编程语言 > Java开发

桥接模式(Bridge)-Java

2016-05-26 12:52 453 查看
以前百度空间写的全没了,全部重写一遍

【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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: