动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

30天自动登录
微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Java外观模式

03-29 16:49 305浏览
举报 T字号
  • 大字
  • 中字
  • 小字

介绍:为子系统中的接口提供一个一致的界面,它定义了一个高层接口,这个接口使得这个子系统更加容易使用。

优点:其实我们代码中的Service层的写法就可以看成是使用了外观模式。外观模式实现了子系统与客户端之间的松耦合关系,相当于Controller和Dao的解耦合,将负责的业务处理交给Service,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。

苹果手机制作

场景:如果让我们来制作一个苹果手机。假设,我们需要实现拍照、视频聊天、通话的功能。通过外观模式,相当于对外提供了几个接口,拍照、视频聊天、通话的接口,而具体的内部处理,用户并不需要关心。

手机

public interface Phone {
    // 打电话
    public void call();
}

触摸屏手机

public class TouchPhone implements Phone{
    
    @Override
    public void call() {
        System.out.println("点击触摸屏拨号");
    }

}

相机

public interface Camera {
    // 打开相机
    public void open();
    // 照相
    public void takePhoto();
    // 关闭相机
    public void close();
}

索尼相机

public class SonyCamera implements Camera{


    @Override
    public void open() {
        System.out.println("打开照相机");
    }

    @Override
    public void takePhoto() {
        System.out.println("拍照");
    }

    @Override
    public void close() {
        System.out.println("关闭照相机");
    }

}

组装苹果手机

public class IPhone {
    // 手机的原件
    private Phone phone = new TouchPhone();
    private Camera camera = new SonyCamera();

    public void call() {
        phone.call();
    }

    public void videoChat() { // 先打开相机,再通话
        System.out.println("=======开始视频聊天");
        camera.open();
        phone.call();
    }

    public void takePhoto() { // 照相,先打开相机,再拍照
        camera.open();
        camera.takePhoto();
    }
}

 

0人推荐
共同学习,写下你的评论
0条评论
我是码农
程序员我是码农

25篇文章贡献87343字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

代码小兵66904-21 20:01

6道经典算法面试题

杨晶珍05-12 16:39

简述Spring MVC的核心组件

代码小兵49806-11 16:26

SpringMVC 中的组件

代码小兵49806-11 16:28

Spring常见面试题

代码小兵92504-17 16:07

发评论

举报

0/150

取消