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

  • 相关阅读:
    JSP所需要掌握的部分
    Parameter index out of range (1 > number of parameters, which is 0).
    Servlet到Servlet的请求转发与重定向的区别
    servlet范围:数据共享
    hihocoder 1169 猜数字
    UVA 1149 Bin Packing
    Using a Comparison Function for the Key Type
    STL Iterators
    SPOJ Pouring Water
    求DAG上两点的最短距离
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15229901.html
Copyright © 2011-2022 走看看