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();
        }
    
    }
  • 相关阅读:
    Spark算子(二)Action
    Spark中利用Scala进行数据清洗(代码)
    Spark核心概念
    Scala面向对象详解
    Scala控制语句
    Scala基础语法
    Scala简介、安装、函数、面向对象
    Hbase优化
    管理员必备的20个Linux系统监控工具
    iOS 关于webView的使用方法
  • 原文地址:https://www.cnblogs.com/tanlon/p/3413525.html
Copyright © 2011-2022 走看看