美文网首页
理解门面模式

理解门面模式

作者: 饿了爸 | 来源:发表于2019-08-22 09:54 被阅读0次

1 门面设计模式介绍

要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。最核心的目的:简化子系统,简化客户使用,屏蔽多个子系统

门面模式 类图

1.1 应用场景

A:简化子系统复杂性时。
B:监控所有子系统时;通过门面控制了入口,可以统一监控;
C:希望封装和隐藏子系统时;
D:两历史系统进行改造并打通关系时;

1.2 优缺点

优点:

  • 松耦合
  • 用户与子系统解耦,屏蔽子系统;可以提高子系统的独立性;
  • 使用简单
  • 简化用户与子系统的依赖关系;
  • 用户只与门面对接,有统一的入口;不需要知道所有子系统及内部构造;

缺点:

  • 不规范的编程方式
  • 没有面向抽象编程,而是通过增加中介层,转换服务提供方的服务接口;

2 代码实现

子系统角色中的类:

public class ModuleA {
    //示意方法
    public void testA(){
        System.out.println("调用ModuleA中的testA方法");
    }
}
public class ModuleB {
    //示意方法
    public void testB(){
        System.out.println("调用ModuleB中的testB方法");
    }
}
public class ModuleC {
    //示意方法
    public void testC(){
        System.out.println("调用ModuleC中的testC方法");
    }
}

门面角色类

public class Facade {
    //示意方法,满足客户端需要的功能
    public void test(){
        ModuleA a = new ModuleA();
        a.testA();
        ModuleB b = new ModuleB();
        b.testB();
        ModuleC c = new ModuleC();
        c.testC();
    }
}
public class ModuleFacade {
    
    ModuleA a = new ModuleA();
    ModuleB b = new ModuleB();
    ModuleC c = new ModuleC();
    /**
     * 下面这些是A、B、C模块对子系统外部提供的方法
     */
    public void testA(){
        a.testA();
    }
    public void testB(){
        b.testB();
    }
    public void testC(){
        c.testC();
    }
}

客户端角色类

public class Client {
 
    public static void main(String[] args) {
        
        Facade facade = new Facade();
        facade.test();
        ModuleFacade mfacade = new ModuleFacade ()
        mfacade.testA();
    }
 
}

3 开源框架中的应用

3.1 Netty bootstrap

3.2 activiti ProcessEngine

3.3 log4j

4 其他注意事项

4.1 与代理模式区别

相似点:

  • 都引入了中介类(对象)
  • 中介对象都引用并把功能委托给了原对象
  • 都起到了”代理”功能

区别

  • 代理侧重于对原对象的访问控制(当然也可以不是控制而是功能增强)
  • 代理与原类实现相同的抽象(相同接口或直接继承原业)
  • 代理只代理一个类
  • 门面侧重于功能整合(多个小系统或小对象整合成一个功能丰富的大对象)
  • 门面可以与子系统具有不同的抽象(具有不同的接口,可以对方法重新起名)
  • 门面代理的是一系列类

相关文章

  • 理解门面模式

    1 门面设计模式介绍 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,...

  • 学好设计模式防被祭天:门面模式

    为了防止被“杀”了祭天,学点设计模式,并总结下还是有必要的。 一:理解 门面模式也称为外观模式。 门面模式提供了一...

  • 六、门面模式与装饰器模式详解

    8.门面模式 8.1.课程目标 1、掌握门面模式和装饰器模式的特征和应用场景 2、理解装饰器模式和代理模式的根本区...

  • 门面模式

    概念 为了满足一组系统接口使用变得更简单,需要提供统一的访问入口。我们可以将这一组系统接口简化为一个接口,那么也算...

  • 门面模式

    门面模式 定义 门面模式也叫做外观模式,是一种比较常用的封装模式。要求一个子系统的外部与其内部的通信必须通过一个统...

  • 门面模式

    子系统(细节)角色 门面角色 场景使用

  • 门面模式

    门面模式:个人理解,就是在客户端和实现类之间松耦合的一种方式。如果客户端需要操作很多的逻辑,可以将逻辑封装到一个类...

  • 门面模式

    1.定义# 要求一个子系统(具有很多类的一个系统)的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个...

  • 门面模式

    门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使...

  • 门面模式

    门面模式的定义 门面模式(Facade Pattern)也叫做外观模式。定义:要求一个子系统的外部与其内部的通信必...

网友评论

      本文标题:理解门面模式

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