7 设计模式之桥接模式(七)
2015-06-14 16:33
337 查看
适用场合:实现系统可能有多个角度分类,每一种分类都可能有变化,那么就把这种 多角度分离出来让它们独立变化,减少它们之间的耦合。
什么是桥接模式呢?桥接模式将抽象部分与它的实现部分分离,使它们可以独立变化。
下面是相关的主要架构代码:
1 两个抽象类HandsetBrand.java、HandsetSoft.java
1.1 HandsetBrand.javapackage com.ops.bridge;
public abstract class HandsetBrand {
protected HandsetSoft soft = null;
public void setHandsetSoft(HandsetSoft soft) {
this.soft = soft;
}
public abstract void run();
}
1.2 HandsetSoft.javapackage com.ops.bridge;
public abstract class HandsetSoft {
public abstract void run();
}
2 相关实现类HandsetBrandHW.java、HandsetBrandTCLj.ava、HandsetAddressList.java、HandsetGame.java
2.1 HandsetBrandHW.javapackage com.ops.bridge.base;
import com.ops.bridge.HandsetBrand;
public class HandsetBrandHW extends HandsetBrand {
@Override
public void run() {
this.soft.run();
}
}
2.2 HandsetBrandTCLj.avapackage com.ops.bridge.base;
import com.ops.bridge.HandsetBrand;
public class HandsetBrandTCL extends HandsetBrand {
@Override
public void run() {
this.soft.run();
}
}
2.3 HandsetAddressList.javapackage com.ops.bridge.base;
import com.ops.bridge.HandsetSoft;
public class HandsetAddressList extends HandsetSoft {
@Override
public void run() {
System.out.println("Run Handset AddressList.");
}
}
2.4 HandsetGame.javapackage com.ops.bridge.base;
import com.ops.bridge.HandsetSoft;
public class HandsetGame extends HandsetSoft {
@Override
public void run() {
System.out.println("Run HandSet game.");
}
}
3 客户端组装代码BridgeClient.javapackage com.ops.bridge.base.main;
import org.junit.Test;
import com.ops.bridge.HandsetBrand;
import com.ops.bridge.base.HandsetAddressList;
import com.ops.bridge.base.HandsetBrandHW;
import com.ops.bridge.base.HandsetBrandTCL;
import com.ops.bridge.base.HandsetGame;
public class BridgeClient {
@Test
public void test() {
HandsetBrand handsetBrand = null;
handsetBrand = new HandsetBrandTCL();
handsetBrand.setHandsetSoft(new HandsetGame());
handsetBrand.run();
handsetBrand.setHandsetSoft(new HandsetAddressList());
handsetBrand.run();
handsetBrand = new HandsetBrandHW();
handsetBrand.setHandsetSoft(new HandsetGame());
handsetBrand.run();
handsetBrand.setHandsetSoft(new HandsetAddressList());
handsetBrand.run();
}
}
什么是桥接模式呢?桥接模式将抽象部分与它的实现部分分离,使它们可以独立变化。
下面是相关的主要架构代码:
1 两个抽象类HandsetBrand.java、HandsetSoft.java
1.1 HandsetBrand.javapackage com.ops.bridge;
public abstract class HandsetBrand {
protected HandsetSoft soft = null;
public void setHandsetSoft(HandsetSoft soft) {
this.soft = soft;
}
public abstract void run();
}
1.2 HandsetSoft.javapackage com.ops.bridge;
public abstract class HandsetSoft {
public abstract void run();
}
2 相关实现类HandsetBrandHW.java、HandsetBrandTCLj.ava、HandsetAddressList.java、HandsetGame.java
2.1 HandsetBrandHW.javapackage com.ops.bridge.base;
import com.ops.bridge.HandsetBrand;
public class HandsetBrandHW extends HandsetBrand {
@Override
public void run() {
this.soft.run();
}
}
2.2 HandsetBrandTCLj.avapackage com.ops.bridge.base;
import com.ops.bridge.HandsetBrand;
public class HandsetBrandTCL extends HandsetBrand {
@Override
public void run() {
this.soft.run();
}
}
2.3 HandsetAddressList.javapackage com.ops.bridge.base;
import com.ops.bridge.HandsetSoft;
public class HandsetAddressList extends HandsetSoft {
@Override
public void run() {
System.out.println("Run Handset AddressList.");
}
}
2.4 HandsetGame.javapackage com.ops.bridge.base;
import com.ops.bridge.HandsetSoft;
public class HandsetGame extends HandsetSoft {
@Override
public void run() {
System.out.println("Run HandSet game.");
}
}
3 客户端组装代码BridgeClient.javapackage com.ops.bridge.base.main;
import org.junit.Test;
import com.ops.bridge.HandsetBrand;
import com.ops.bridge.base.HandsetAddressList;
import com.ops.bridge.base.HandsetBrandHW;
import com.ops.bridge.base.HandsetBrandTCL;
import com.ops.bridge.base.HandsetGame;
public class BridgeClient {
@Test
public void test() {
HandsetBrand handsetBrand = null;
handsetBrand = new HandsetBrandTCL();
handsetBrand.setHandsetSoft(new HandsetGame());
handsetBrand.run();
handsetBrand.setHandsetSoft(new HandsetAddressList());
handsetBrand.run();
handsetBrand = new HandsetBrandHW();
handsetBrand.setHandsetSoft(new HandsetGame());
handsetBrand.run();
handsetBrand.setHandsetSoft(new HandsetAddressList());
handsetBrand.run();
}
}
相关文章推荐
- 深入理解JavaScript系列(44):设计模式之桥接模式详解
- 用代码和UML图化解设计模式之桥接模式的深入分析
- C++设计模式之桥接模式
- VMware下桥接设置
- GOF23之桥接模式Demo
- 设计模式-----桥接模式(Bridge Pattern)
- VMware下桥接设置
- 第二天,VMware三种网络模式的简单区别
- 大话设计模式 桥接模式
- 桥接模式
- 【重读设计模式】桥接模式
- Windows 7配置VMware虚拟机使用无线网络
- 桥接模式
- Bridge模式(桥接模式 )
- VMWare 三种工作模式(bridged、host-only、NAT)
- 关于软件体系结构设计模式的总结
- 虚拟机Ubuntu系统配置IP
- 桥接(bridge)
- 设计模式之桥接模式 及 c++ 实现
- Java开发中的23种设计模式详解