zoukankan      html  css  js  c++  java
  • 设计模式之 外观模式

    外观模式将多个子系统及其之间的复杂关系和调用流程封装到一个统一的接口或类中以对外提供服务。

    image

    示例:

    image

    (1)定义子系统

    public class DashBoard{
        private final static Log logger = LogFactory.getLog(this.getClass());
        public void startup(){
            logger.info("dashboard startup......");
        }
    
        public void shutdown(){
            logger.info("dashboard shutdown......");
        }
    }
    
    public class Engine{
        private final static Log logger = LogFactory.getLog(this.getClass());
        public void startup(){
            logger.info("engine startup......");
        }
    
        public void shutdown(){
            logger.info("engine shutdown......");
        }
    }
    
    public class SelfCheck{
        private final static Log logger = LogFactory.getLog(this.getClass());
        public void startupCheck(){
            logger.info("startup check");
        }
    
        public void shutdown(){
            logger.info("shutdown check finished");
        }
    }

    (2)定义门面类

    public class Starter{
        private final static Log logger = LogFactory.getLog(this.getClass());
        private DashBoard dashBoard;
        private Engine engine;
        private SelfCheck selfCheck;
        public Starter(){
            this.dashBoard = new DashBoard();
            this.engine = new Engine();
            this.selfCheck = new SelfCheck();
        }
    
        public void startup(){
            logger.info("car begin startup");
            engine.startup();
            dashBoard.startup();
            selfCheck.startupCheck();
            logger.info("car startup finished");
        }
    
        public void shutdown(){
            logger.info("car begin shutdown");
            engine.shutdown();
            dashBoard.shutdown();
            selfCheck.shutdown();
            logger.info("car shutdown finished");
        }
    }

    (3)使用外观模式

    public static void main(String[] args){
        Starter starter = new Starter();
        starter.startup();
        starter.shutdown();
    }

  • 相关阅读:
    redies安装
    跟我一起学koa之在koa中使用mongoose(四)
    mongoDB可视化工具RoBo 3T的安装和使用
    跟我一起了解koa之koa洋葱圈模型(二)
    跟我一起了解koa之koa的cookie(三)
    跟我一起了解koa之koa-generator(一)
    2进制数转成10进制
    koa中同步与异步的写法
    bootstrap-内联表单 水平(横向)表单 响应式图片 辅助类 [转]
    Bootstrap 杂记
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15229901.html
Copyright © 2011-2022 走看看