• 结构型设计模式之外观模式


    3.1问题的解决方法

    package test;
    
    public class Problem2 {
    
        public static void main(String[] args) {
            // 结构型模式之外观模式
            SwitchFacade switchFacade=new SwitchFacade();
            switchFacade.onDn();
            switchFacade.offDn();
            switchFacade.onJxq();
            switchFacade.offJxq();
            switchFacade.onKt();
            switchFacade.offKt();
            switchFacade.onTyy();
            switchFacade.offTyy();
        }
    
    }
    //电器接口  子系统
    interface dq{
        public void on();
        public void off();
    }
    //电脑实体类
    class Dn implements dq{
        @Override
        public void on() {
            // TODO Auto-generated method stub
            System.out.println("电脑开");
        }
        @Override
        public void off() {
            // TODO Auto-generated method stub
            System.out.println("电脑关闭");
        }    
    }
    //集线器实体类
    class Jxq implements dq{
        @Override
        public void on() {
            // TODO Auto-generated method stub
            System.out.println("集线器开");
        }
        @Override
        public void off() {
            // TODO Auto-generated method stub
            System.out.println("集线器关闭");
        }    
    }
    //空调实体类
    class Kt implements dq{
        @Override
        public void on() {
            // TODO Auto-generated method stub
            System.out.println("空调开");
        }
        @Override
        public void off() {
            // TODO Auto-generated method stub
            System.out.println("空调关闭");
        }    
    }
    //投影仪实体类
    class Tyy implements dq{
        @Override
        public void on() {
            // TODO Auto-generated method stub
            System.out.println("投影仪开");
        }
        @Override
        public void off() {
            // TODO Auto-generated method stub
            System.out.println("投影仪关闭");
        }    
    }
    //外观 总系统
    class  SwitchFacade{
        Dn dn=null;
        Jxq jxq=null;
        Kt kt=null;
        Tyy tyy=null;
        public SwitchFacade() {
            dn=new Dn();
            jxq=new Jxq();
            kt=new Kt();
            tyy=new Tyy();        
        }
        //先打开集线器,后打开电脑 
        public void onDn() {        
            jxq.on();
            dn.on();
        }
        //先关闭电脑,后关闭集线器
        public void offDn() {
            jxq.off();
            dn.off();
        }
        
        public void onJxq() {
            jxq.on();
        }
        public void offJxq() {
            jxq.off();
        }
        
        public void onKt() {
            kt.on();
        }
        public void offKt() {
            kt.off();
        }
        
        public void onTyy() {
            tyy.on();
        }
        public void offTyy() {
            tyy.off();
        }
    }
    View Code
  • 相关阅读:
    论如何O(1)快速乘
    luogu3605晋升者计数
    分数规划小结
    洛谷 P1589 泥泞路 & 2019青岛市竞赛(贪心)
    洛谷 P3368 【模板】树状数组 2(区间加,单点查询)
    前缀和序列 & 差分序列
    洛谷 P3374 【模板】树状数组 1(单点加,区间和)
    2019青岛市程序设计竞赛游记
    0x3f3f3f3f 0xbfbfbfbf 等的原理及应用
    memset 初始化数组 & 实现原理
  • 原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/10033389.html
Copyright © 2020-2023  润新知