赞
踩
桥接模式是将抽象部分与实现部分分离,使它们都可以独立的变化。
桥接模式是结构型设计模式,主要是将抽象部分与实现部分分离,使它们都可以独立的变化。桥接模式主要目的是通过组合的方式建立两个类之间的联系,而不是继承。通俗来讲是通过组合来桥接其它的行为/维度。
抽象化角色 :主要负责定义出该角色的行为 ,并包含一个对实现化对象的引用。
扩展抽象化角色 :是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
实现化角色 :定义实现化角色的接口,包含角色必须的行为和属性,并供扩展抽象化角色调用。
具体实现化角色 :给出实现化角色接口的具体实现。
实现角色类
/**
* 实现角色类
*/
public interface CatColour {
/**
* 获取颜色
*/
void getColour();
}
具体实现角色类
/**
* 接口实现类
*/
public class RedCatColour implements CatColour{
@Override
public void getColour() {
System.out.println("红色");
}
}
public class SkyBlueCatColour implements CatColour{
@Override
public void getColour() {
System.out.println("天蓝色");
}
}
抽象角色类
/** * 抽象类接口 */ public abstract class Cat { // 将接口作为一个属性来修饰 抽象类 protected CatColour catColour; // set方法设置属性Ca public void setCatColour(CatColour catColour) { this.catColour = catColour; } /** * 行驶汽车 */ abstract void run(); }
抽象扩展实现类
/**
* 抽象实现类
*/
public class XiaomiSu7Cat extends Cat{
public XiaomiSu7Cat(CatColour colour) {
super.setCatColour(colour);
}
@Override
void run() {
catColour.getColour();
System.out.println("小米su7");
}
}
public class BmwCat extends Cat{
public BmwCat(CatColour catColour) {
super.setCatColour(catColour);
}
@Override
void run() {
catColour.getColour();
System.out.println("宝马车");
}
}
测试类
public static void main(String[] args) {
XiaomiSu7Cat xiaomiSu7Cat = new XiaomiSu7Cat(new SkyBlueCatColour());
xiaomiSu7Cat.run();
}
结果
抽象和实现的分离。桥接模式使用"对象间的关联关系"解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。
优秀的扩展能力。桥接模式提高了系统的扩展性,在两个变化维度中任意扩展一个维度都不需要修改原有系统,符合开闭原则。
系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性;
不想使用继承导致类的个数急剧增加。
以上就是今天的内容了,本文简单介绍了桥接设计模式的使用和优缺点,提供代码示例以供参考。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。