码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——桥接模式

时间:2019-08-10 19:31:55      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:mic   oid   osi   uil   super   abstract   com   地方   div   

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

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

来看下类图:

技术图片

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

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("夏普电视机换频道了");
    }
}

  

 

设计模式——桥接模式

标签:mic   oid   osi   uil   super   abstract   com   地方   div   

原文地址:https://www.cnblogs.com/shenqiaqia/p/11332581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!