Java后端工程师面试题,【源码分析设计模式 12

    System.out.println(" Vivo手机开机 ");

}



@Override

public void close() {

    System.out.println(" Vivo手机关机 ");

}



@Override

public void call() {

    System.out.println(" Vivo手机打电话 ");

}

}


package designMode.advance.bridge;



public class XiaoMi implements Brand {

    @Override

    public void open() {

        System.out.println(" 小米手机开机 ");

    }



    @Override

    public void close() {

        System.out.println(" 小米手机关机 ");

    }



    @Override

    public void call() {

        System.out.println(" 小米手机打电话 ");

    }

} 

```



### 3、手机样式,行为类



```

package designMode.advance.bridge;



public abstract class Phone {

    //组合品牌

    private Brand brand;



    //构造器

    public Phone(Brand brand) {

        super();

        this.brand = brand;

    }



    protected void open() {

        this.brand.open();

    }

    protected void close() {

        brand.close();

    }

    protected void call() {

        brand.call();

    }

} 

package designMode.advance.bridge;

public class UpRightPhone extends Phone {

//构造器

public UpRightPhone(Brand brand) {

    super(brand);

}



public void open() {

    super.open();

    System.out.println(" 直立样式手机 ");

}



public void close() {

    super.close();

    System.out.println(" 直立样式手机 ");

}



public void call() {

    super.call();

    System.out.println(" 直立样式手机 ");

}

}


package designMode.advance.bridge;



public class FoldedPhone extends Phone  {

    //构造器

    public FoldedPhone(Brand brand) {

        super(brand);

    }



    public void open() {

        super.open();

        System.out.println(" 折叠样式手机 ");

    }



    public void close() {

        super.close();

        System.out.println(" 折叠样式手机 ");

    }



    public void call() {

        super.call();

        System.out.println(" 折叠样式手机 ");

    }

} 

```



### 4、测试类



```

package designMode.advance.bridge;



public class Client {

    public static void main(String[] args) {

        //获取折叠式手机 (样式 + 品牌 )

        Phone phone1 = new FoldedPhone(new XiaoMi());

        phone1.open();

        phone1.call();

        phone1.close();



        System.out.println("=======================");



        Phone phone2 = new FoldedPhone(new Vivo());



        phone2.open();

        phone2.call();

        phone2.close();



        System.out.println("==============");



        UpRightPhone phone3 = new UpRightPhone(new XiaoMi());



        phone3.open();

        phone3.call();

        phone3.close();



        System.out.println("==============");



        UpRightPhone phone4 = new UpRightPhone(new Vivo());



        phone4.open();

        phone4.call();

        phone4.close();

    }

} 

```



### 最后

**对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。**

**整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。**

**再免费分享一波我的Java面试真题+视频学习详解+技能进阶书籍**

**[点击这里即可免费获取以上我收集整理的全部学习资料](https://gitee.com/vip204888/java-p7)**

);

        phone4.close();

    }

} 

```



### 最后

**对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。**

**整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。**

**再免费分享一波我的Java面试真题+视频学习详解+技能进阶书籍**

**[点击这里即可免费获取以上我收集整理的全部学习资料](https://gitee.com/vip204888/java-p7)**

![美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)](https://www.icode9.com/i/ll/?i=img_convert/6ef36db3dcf746d33f217367af5f9a5a.png)
上一篇:.Net后台调用js,提示、打开新窗体、关闭当前窗体


下一篇:mybatis动态SQL,IN查询标签