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();
    }

  • 相关阅读:
    第一篇博客
    【面试大系】PHP程序员的知识盘点
    【PHP资源】PHP 资源大全
    【前端经纬】将页面元素定位
    大爱卡农三百年
    【夯实PHP基础】PHP标准库 SPL
    【http抓包】记录一次抓手机app的接口
    【算法】PHP实现冒泡排序和快速排序--防遗忘
    Apache的初中级面试题
    【生活感悟系列】感悟在一瞬间(不断完善中)
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15229901.html
Copyright © 2011-2022 走看看