美文网首页
外观模式

外观模式

作者: Lemon_Home | 来源:发表于2018-03-13 10:42 被阅读13次

    1. 概念

    外观模式的主要目的在于让外部减少与子系统内部多个模块的交互,从而让外部能够更简单得使用子系统。它负责把客户端的请求转发给子系统内部的各个模块进行处理。主要是组合已有功能以实现客户端请求,而不会添加新的需求。


    image.png

    2. 使用场景

    当要为一个复杂子系统提供一个简单接口时。
    客户程序与抽象类的实现部分之间存在着很大的依赖性。
    当需要构建一个层次结构的子系统时。

    3. 实例

    public class Module1 {
        public void testFunctionA() {
            System.out.println("testFunctionA from Module1");
        }
    }
    
    public class Module2 {
        public void testFunctionB() {
            System.out.println("testFunctionB from Module2");
        }
    }
    
    
    public class Module3 {
        public void testFunctionC() {
            System.out.println("testFunctionC from Module3");
        }
    }
    
    public class Facade {
        private Module1 module1 = null;
        private Module2 module2 = null;
        private Module3 module3 = null;
        private static Facade facade = null;
    
        private Facade() {
            module1 = new Module1();
            module2 = new Module2();
            module3 = new Module3();
        }
    
        public static Facade getFacade() {
            if (facade == null) {
                facade = new Facade();
            }
            return facade;
        }
    
        public void testOperation() {
            module1.testFunctionA();
            module2.testFunctionB();
            module3.testFunctionC();
        }
    }
    
    
    public class Client {
        public static void main(String[] args) {
            Facade.getFacade().testOperation();
        }
    }
    

    4. 特点

    由于Facade类封装了各个模块交互的过程,如果今后内部模块调用关系发生了变化,只需要修改Facade实现就可以了。
    Facade实现是可以被多个客户端调用的。

    5. 在android的运用

    contextimpl

    相关文章

      网友评论

          本文标题:外观模式

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