设计模式——桥接模式

余生长醉 提交于 2019-11-26 20:22:35

这次来看下桥接模式,将抽象部分与实现部分分离,使它们都可以独立的变化。

对于类之间相互引用,但是变化又十分频繁,可以抽象出来放在抽象类里面进行聚合。

来看下类图:

类图也很简单,没有什么复杂的地方,直接看下代码吧:

public abstract class RemoteControl {

    protected TV tv;

    public RemoteControl(TV tv) {
        this.tv = tv;
    }

    public void on() {
        tv.on();
    }

    public void off() {
        tv.off();
    }

    abstract void setChannel();
}

  

public class ConcreteRemote extends RemoteControl {

    public ConcreteRemote(TV tv) {
        super(tv);
    }

    @Override
    void setChannel() {
        tv.tuneChannel();
    }
}

  

public interface TV {

    void on();

    void off();

    void tuneChannel();
}

  

public class Sony implements TV {

    @Override
    public void on() {
        System.out.println("索尼电视机打开了");
    }

    @Override
    public void off() {
        System.out.println("索尼电视机关闭了");
    }

    @Override
    public void tuneChannel() {
        System.out.println("索尼电视机换频道了");
    }
}

  

public class Sharp implements TV {

    @Override
    public void on() {
        System.out.println("夏普电视机打开了");
    }

    @Override
    public void off() {
        System.out.println("夏普电视机关闭了");
    }

    @Override
    public void tuneChannel() {
        System.out.println("夏普电视机换频道了");
    }
}

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!