您的位置:首页 > 其它

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