zoukankan      html  css  js  c++  java
  • 设计模式——外观模式(FacadePattern)

    外观模式:为子系统中的一组接口提供一个一致的界面,次模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    UML图:

    外观类:

    package com.cnblog.clarck;
    
    /**
     * 外观类 知道哪些子系统负责处理请求,将客户的请求代理给适当的子系统对象
     * 
     * @author clarck
     * 
     */
    public class Facede {
        private SubSystemOne one;
        private SubSystemTwo two;
        private SubSystemThree three;
        private SubSystemFour four;
    
        public Facede() {
            one = new SubSystemOne();
            two = new SubSystemTwo();
            three = new SubSystemThree();
            four = new SubSystemFour();
        }
    
        public void methodA() {
            System.out.println("方法组A ---------");
            one.methodOne();
            two.methodTwo();
            four.methodFour();
        }
    
        public void methodB() {
            System.out.println("方法组A ---------");
            two.methodTwo();
            three.methodThree();
        }
    }
    package com.cnblog.clarck;
    
    /**
     * 子系统一
     * 
     * @author clarck
     * 
     */
    public class SubSystemOne {
        public void methodOne() {
            System.out.println("子系统方法一");
        }
    }
    package com.cnblog.clarck;
    
    /**
     * 子系统二
     * 
     * @author clarck
     * 
     */
    public class SubSystemTwo {
        public void methodTwo() {
            System.out.println("子系统方法二");
        }
    }
    package com.cnblog.clarck;
    
    public class SubSystemThree {
        public void methodThree() {
            System.out.println("子系统方法三");
        }
    }
    package com.cnblog.clarck;
    
    /**
     * 子系统方法四
     * 
     * @author clarck
     * 
     */
    public class SubSystemFour {
        public void methodFour() {
            System.out.println("子系统方法四");
        }
    }
    package com.cnblog.clarck;
    
    /**
     * 测试类
     * 
     * @author clarck
     * 
     */
    public class Client {
    
        public static void main(String[] args) {
            Facede facede = new Facede();
    
            facede.methodA();
            facede.methodB();
        }
    
    }
  • 相关阅读:
    考虑浏览器兼容的文件上传(IE8不支持FormData)
    IDEA tomcat 部署WEB项目
    如何在springcloud分布式系统中实现分布式锁?
    ABAP DEMO33 选择周的搜索帮助
    ABAP函数篇1 日期函数
    ABAP函数篇2 测试DATE_CONVERT_TO_FACTORYDATE
    增强篇7 判断标准屏幕能否做屏幕增强
    增强篇6 CMOD增强删除
    ABAP DEMO 年月的搜索帮助
    HoloLens开发手记-配置开发环境 Install the tools
  • 原文地址:https://www.cnblogs.com/tanlon/p/3413525.html
Copyright © 2011-2022 走看看