美文网首页
Android源码设计模式学习笔记-外观模式

Android源码设计模式学习笔记-外观模式

作者: e小e | 来源:发表于2018-03-03 14:34 被阅读3次

    外观模式在开发过程中运用的频率非常高,尤其是在现阶段各种第三方sdk充斥的周边,这些sdk很大概率会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能降低用户的使用成本,对用户屏蔽了很多实现细节。它的uml类图如下:


    image.png

    外观模式的简单示例

    public class MobilePhone {
        private Phone mPhone = new PhoneImpl();
        private Camera mCameraImpl = new SamsungCamera();
    
        public void dail(){
            mPhone.dail();
        }
    
        public void videoChat(){
            System.out.println("-->视频聊天接通中");
            mCameraImpl.open();
            mPhone.dail();
        }
    
        public void hangup(){
            mPhone.hangup();
        }
    
        public void takePic(){
            mCameraImpl.open();
            mCameraImpl.takePic();
        }
    
        public void closeCamera(){
            mCameraImpl.close();
        }
    
    }
    
    public interface Camera {
        void open();
        void takePic();
        void close();
    }
    
    public class SamsungCamera implements Camera {
        @Override
        public void open() {
            System.out.println("打开相机");
        }
    
        @Override
        public void takePic() {
            System.out.println("拍照");
        }
    
        @Override
        public void close() {
            System.out.println("关闭相机");
        }
    }
    
    public interface Phone {
        //打电话
        void dail();
        //挂断
        void hangup();
    }
    
    public class PhoneImpl implements Phone{
        @Override
        public void dail() {
            System.out.println("打电话");
        }
    
        @Override
        public void hangup() {
            System.out.println("挂断");
        }
    }
    
    public class Test {
        public static void main(String[] args){
            MobilePhone nexus6 = new MobilePhone();
            //拍照
            nexus6.videoChat();
            //拍照
            nexus6.takePic();
        }
    }
    

    结合一张用例图将会更直观清晰感受一下上面的外观模式


    image.png

    相关文章

      网友评论

          本文标题:Android源码设计模式学习笔记-外观模式

          本文链接:https://www.haomeiwen.com/subject/uwvtfftx.html