首页 > 其他 > 详细

Bridge Pattern

时间:2020-06-27 15:52:28      阅读:56      评论:0      收藏:0      [点我收藏+]

传统方式 不利于 将来扩展

技术分享图片
技术分享图片

Bridge Pattern

技术分享图片
技术分享图片

The Phone Question

技术分享图片

// Brand.java
public interface Brand {
    void open();
    void close();
    void call();
}
// XiaoMi.java
public class XiaoMi implements Brand{
    public void open() {
        System.out.println("XiaoMi Open");
    }

    public void close() {
        System.out.println("XiaoMi Close");
    }

    public void call() {
        System.out.println("XiaoMi calling");
    }
}
//Vivo.java
public class Vivo implements Brand{
    public void open() {
        System.out.println("Vivo open");
    }

    public void close() {
        System.out.println("Vivo close");
    }

    public void call() {
        System.out.println("Vivo calling");
    }
}
// Phone.java
public abstract class Phone {
    //组合品牌
    private Brand brand;

    public Phone(Brand brand){
        this.brand = brand;
    }

    protected void open(){
        brand.open();
    }

    protected void close(){
        brand.close();
    }

    protected void call(){
        brand.call();
    }
}
//FoldedPhone.java
public class FoldedPhone extends Phone{
    public FoldedPhone(Brand brand){
        super(brand);   //调用父类的构造器,这里基本上都使用父类的方法。
    }

    public void open(){
        super.open();
        System.out.println("Folded Phone open");
    }

    public void close(){
        super.close();
        System.out.println("Folded Phone close");
    }

    public void call(){
        super.call();
        System.out.println("Folded Phone calling");
    }
}
//UpRightPhone.java
public class UpRightPhone extends Phone{
    public UpRightPhone(Brand brand){
        super(brand);
    }

    public void open(){
        super.open();
        System.out.println("UpRight Phone Open");
    }

    public void close(){
        super.close();
        System.out.println("UpRight Phone Close");
    }

    public void call(){
        super.call();
        System.out.println("UpRight Phone Calling");
    }
}
//Client.java
public class Client {
    public static void main(String[] args) {
        Phone phone = new FoldedPhone(new XiaoMi());
        phone.call();
        phone.close();
        phone.open();
    }
}

Bridge Pattern

原文:https://www.cnblogs.com/nedrain/p/13198350.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!