美文网首页设计模式
设计模式-外观模式

设计模式-外观模式

作者: isLJli | 来源:发表于2020-05-21 22:48 被阅读0次

    外观设计模式的定义

    要求一个子系统的外部与其内部通信必须通过一个统一的对象进行,又称之为门面模式,提供一个高层次的接口,使得子系统更易于使用

    外观设计模式更像是一个管理类,把多个功能集成在一个类中,类通过方法向外界提供功能实现,不是客户端调用真正的实现方法。

    外观设计模式例子

    我们把手机的电话系统和拍照系统,通过一个类来封装好,通过调用这个类的方法就可以实现相对应的功能

    /**
     * 打电话的系统
     */
    public interface Phone {
        void dail(); //打电话
        void hangup(); //挂断电话
    }
    
    
    public class PhoneImp implements Phone {
        @Override
        public void dail() {
            System.out.println("打电话");
        }
    
        @Override
        public void hangup() {
            System.out.println("挂断电话");
        }
    }
    
    /**
     * 拍照系统
     */
    public interface Camera {
        void open(); //打开相机
        void takePicture(); //拍照
        void close(); //关闭
    }
    
    public class CameraImp implements Camera {
        @Override
        public void open() {
            System.out.println("打开相机");
        }
    
        @Override
        public void takePicture() {
            System.out.println("拍照");
        }
    
        @Override
        public void close() {
            System.out.println("关闭相机");
        }
    }
    

    封装类

    public class MobilePhone {
        Phone mPhone = new PhoneImp();
        Camera mCamera= new CameraImp();
    
        //打电话
        public void dail(){
            mPhone.dail();
        }
    
        //挂断电话
        public void hangup(){
            mPhone.hangup();
        }
    
        //视频聊天
        public void videoChat(){
            System.out.println("----->视频链接中");
            mCamera.open();
            mPhone.dail();
        }
    
        //拍照
        public void takePicture(){
            mCamera.open();
            mCamera.takePicture();
        }
    
        //关闭相机
        public void closeCamera(){
            mCamera.close();
        }
    }
    
    
    public class MainActivity extends AppCompatActivity {  
    @Override  protected void onCreate(Bundle savedInstanceState) {      
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);      
        MobilePhone mobilePhone= new MobilePhone();    
        mobilePhone.takePicture();   
        mobilePhone.videoChat();  
    }
    

    外观设计模式在Android应用

    Context类平时我们用context来startActivity()、sendBroadcast()、sendService(),这些都是封装好的调用方法。

    相关文章

      网友评论

        本文标题:设计模式-外观模式

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