您的位置:首页 > 其它

设计模式-桥接

2016-02-15 17:23 344 查看
1.核心要点:处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联

2.备注:桥接模式可以取代多层继承的方案。多层继承违背了单一职责的原则,复用性较差,会导致类的数量显著增多。使用桥接模式可以极大的减少子类的个数,降低管理和维护成本

桥接模式极在的提高了系统可展性,在两个变化维度中任意扩展一个维度,都不需要修改原有的系统,符合ocp原则

3.


4.示例代码:

<1>品牌

public interface Brand {
void sale();
}
class Lenovo implements Brand{
@Override
public void sale() {
System.out.println("销售联想电脑");
}
}
class Hansee implements Brand{
@Override
public void sale() {
System.out.println("销售神舟电脑");
}
}
class Dell implements Brand{
@Override
public void sale() {
System.out.println("销售dell电脑");
}
}


<2>桥接角色


public class Computer {
protected Brand brand;
public Computer(Brand brand) {
super();
this.brand = brand;
}
public void sale(){
brand.sale();
}
}
class DeskTop extends Computer{
public DeskTop(Brand brand) {
super(brand);
}
@Override
public void sale() {
super.sale();
System.out.println("销售台式机");
}
}
class LabTop extends Computer{
public LabTop(Brand brand) {
super(brand);
}
@Override
public void sale() {
super.sale();
System.out.println("销售笔记本");
}
}


<3>客户端


public class Client {
public static void main(String[] args) {
Computer c1=new DeskTop(new Lenovo());
c1.sale();
Computer c2=new LabTop(new Hansee());
c2.sale();
}
}
//执行结果
销售联想电脑
销售台式机
销售神舟电脑
销售笔记本


上面示例利用组合的方式替代了多层继承的方式,实现computer和Brand的独立变化,扩展性增强,符合ocp原则和单一职责原则。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: