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();
        }
    
    }
  • 相关阅读:
    一周最新示例代码回顾 (4/23–4/29)
    优酷的投票
    Google API获取用户信息
    CPU性能分析
    有意思的排序算法快速排序
    http响应LastModified和ETag以及asp.net web api实现
    java/C#多态漫谈
    有意思的排序算法插入排序
    [Architecture Pattern] Repository
    50个jQuery代码段帮你成为更出色的JS开发者
  • 原文地址:https://www.cnblogs.com/tanlon/p/3413525.html
Copyright © 2011-2022 走看看