技术栈

2019-02-27——设计模式 桥接模式

2019-02-27  本文已影响1人  烟雨乱平生

特点

如果说某个系统能够从多个角度来进行分类,且每一种分类都可能会变化,那么我们需要做的就是将这多个角度分离出来,使得他们能独立变化,减少他们之间的耦合,这个分离过程就使用了桥接模式,将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现的,从而降低了抽象和实现这两个可变维度的耦合度。

主要角色

实现

public interface IAge {
    int getAge();
}


public class ConcreteAge implements IAge{
    @Override
    public int getAge() {
        return 20;
    }
}


public abstract class AbstractGender {
    protected IAge impl;
    AbstractGender(IAge impl){
        this.impl = impl;
    }
    abstract String getGender();
}


public class RefinedGender extends AbstractGender{

    public RefinedGender(IAge impl) {
        super(impl);
    }

    @Override
    String getGender() {
        return "male";
    }

    public void createPerson(){
        System.out.println(String.format("{\"person\":{\"gender\":\"%s\",\"age\":\"%s\"}}",getGender(),this.impl.getAge()));
    }
}

桥接模式感觉使用的是正交思想

上一篇下一篇

猜你喜欢

热点阅读