美文网首页
设计模式(18)之外观模式

设计模式(18)之外观模式

作者: zhglance | 来源:发表于2019-07-05 22:58 被阅读0次

外观模式(Facade Pattern)隐藏系统的复杂性,给调用者提供一个简单的高层接口,来隐藏系统的复杂性。很类似于项目开发中的Service,Service的方法内部封装了对Biz、

SLF4J就是典型的外观模式,SLF4J只提供一个外观接口,具体实现对调用方不可见(常见的实现有log4j、logback等)。

***Mapper等的调用,统一对外部提供一个Service接口。

一、需求举例:

创建一个项目开发团队,有一个Leader,一个初级工程师,1个产品经理。项目预研时,需要Leader技术调研,工程师开发demo;当正式开发项目时,Leader分配工作,产品经理撰写文档,工程师开发。

二、类图:

三、代码实例:

1.工程师类:Engineer

package com.lance.facade;

public class Engineer {

    public void develop() {
       System.out.println("Engineer write code");
    }

    public void developDemo() {
        System.out.println("Engineer write demo code");
    }
}

2.领导类:Leader

package com.lance.facade;

public class Leader {

    public void work() {
        System.out.println("Leader assign task");
    }

    public void study() {
        System.out.println("technical research");
    }
}

3.产品经理类:ProductManager

package com.lance.facade;

public class ProductManager {

    public void work() {
        System.out.println("ProductManager write requirement document");
    }
}

4.外观类:TeamFacade

package com.lance.facade;

public class TeamFacade {

    private Engineer engineer;
    private Leader leader;
    private ProductManager productManager;

    public TeamFacade() {
        engineer = new Engineer();
        leader = new Leader();
        productManager = new ProductManager();
    }

    public void programDevelop() {
        leader.work();
        productManager.work();
        engineer.develop();
    }

    public void programPreResearch() {
        leader.study();
        engineer.developDemo();
    }


}

5.主类:FacadePattern

package com.lance.facade;

public class FacadePattern {

    public static void main(String[] args) {


        System.out.println("==========start==========");

        TeamFacade teamFacade = new TeamFacade();
        teamFacade.programPreResearch();

        System.out.println("=======================");

        teamFacade.programDevelop();

        System.out.println("==========end==========");

    }

}

输出结果:

==========start==========
technical research
Engineer write demo code
=======================
Leader assign task
ProductManager write requirement document
Engineer write code
==========end==========

相关文章

  • 设计模式之 外观模式

    概述 UML类图 代码栗子 总结 概述概念 外观模式又叫做门面模式,提供一个更方便,高层接口,使用一致性的界面使得...

  • 设计模式(18)之外观模式

    外观模式(Facade Pattern)隐藏系统的复杂性,给调用者提供一个简单的高层接口,来隐藏系统的复杂性。很类...

  • Android设计模式——外观模式(七大结构型)

    1.外观模式介绍 外观模式(Facade Pattern),是七大结构型设计模式之一。 外观模式运...

  • 设计模式[9]-外观模式-Facade Pattern

    1. 外观模式 外观模式(Facade Pattern),又称为门面模式,是非常常用的结构性设计模式。外观模式使得...

  • java设计模式-外观模式(Facade)

    外观模式,属于结构性模式。属于设计模式里面比较简单的设计模式,本人认为是最简单的设计模式。 所谓外观,就是我们能看...

  • 了解外观模式

    java 设计模式 ------外观模式 Java中一共有23种设计模式,每种设计模式各有特...

  • 设计模式之-4.外观模式

    每看一次设计模式,感觉每一个设计模式看起来是那么简单,对于外观模式我的理解就是外观模式:外观模式,这个名字起得不怎...

  • 设计模式详解——外观模式

    本篇文章介绍一种设计模式——外观模式。本篇文章内容参考《JAVA与模式》之门面模式,外观模式,深入浅出外观模式(二...

  • Java设计模式之——外观模式

    前言 在简述外观模式前,先看个生活中的例子: 程序员小明到了结婚的年龄,但是由于程序员对于泡妹子这件事来说,咳咳,...

  • 设计模式之七——外观模式

    原文传送门 1 介绍 外观模式又称为门面模式,它是一种对象结构型模式。外观模式是迪米特法则的一种具体实现,通过引入...

网友评论

      本文标题:设计模式(18)之外观模式

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