美文网首页
设计模式-外观模式(十)

设计模式-外观模式(十)

作者: 巨子联盟 | 来源:发表于2018-05-24 10:16 被阅读0次

    外观模式,又叫门面模式

    • 外部对子系统的通信必须要有一个统一的门面对象进行.
    • 一个复杂系统可以有几个门面
    • 满足迪米特法则(一个类和尽量少的类产生关联)

    什么时候用门面模式呢?
    当要和外围系统交互的时候,我们一般只暴露最后的功能,而不把怎么实现的各个细节相关的类都扔出去.这样子系统的内部结构可以随意变化而不影响其他系统.和现在微服务思想差不多.都是通过API调用.service as function...

    示意图:


    image.png

    代码示例:

    package com.byedbl.facade;
    
    /**
     * <pre>
     * 门面模式
     *
     * 比如我现在想建一个房子,大家知道建房子很复杂,要砌墙,造门,装修等等等....
     * 如果不用门面模式,那我们要对整个的创建过程很熟悉,有了门面模式之后就很简单了
     * 门面类提供方法叫建房子createRoom,我直接调用就可以啦,完全不用管里面具体要干什么
     *
     * 利用门面模式,我们可以大大减少外围系统和其他子系统的各种复杂交互
     * @author : zengzhijun
     * @date : 2018/5/24 10:03
     **/
    class Wall {
        public Wall() {
            System.out.println("Create a wall !");
        }
    }
    
    class Door {
        public Door() {
            System.out.println("Create a door !");
        }
    }
    
    class FacadeRoom {
        public void createRoom() {
            Wall wall1 = new Wall();
            Wall wall2 = new Wall();
            Wall wall3 = new Wall();
            Wall wall4 = new Wall();
            Door door = new Door();
        }
    
    }
    
    public class Test {
        public static void main(String[] args) {
            FacadeRoom room = new FacadeRoom();
            room.createRoom();
        }
    }
    

    相关文章

      网友评论

          本文标题:设计模式-外观模式(十)

          本文链接:https://www.haomeiwen.com/subject/dvjdjftx.html