文档章节

我理解的--java门面模式

刘新全
 刘新全
发布于 2016/03/30 20:56
字数 311
阅读 67
收藏 0

这个模式只是简单方法的封装。把一些相关的方法提取出来,单独封装到一个类中。体现了框架的意义,把逻辑业务和客户端分开,更好的组织结构框架,很清晰明了。

门面重在客户端代码的简洁性。

这样子,就可以更好的管理功能,客户端不用变化代码,是不是结构很清晰。web框架的mvc,就是每个模块各自管理自己的功能,每个模块有各自有自己的函数。

头组件(Head):

class Head {
    void getHead() {
        System.out.println("获取头");
    }
}

身体组件(Body):

class Body {
    void getBody() {
        System.out.println("获取躯体");
    }
}

脚组件(Foot):

class Foot {
    void getFoot() {
        System.out.println("获取脚");
        
    }
}


用门面把各个组件封装成一个整体,完成一个完整功能:(初始化的时候是在构造函数中初始化的,很多模式是传参数)

public class Facade {
    Head head;
    Body body;
    Foot foot;

    Facade() {
        head = new Head();
        body = new Body();
        foot = new Foot();
    }

    void getAll() {
        head.getHead();
        body.getBody();
        foot.getFoot();
    }
}

在客户端只需调用门面类就能提供一个功能完整的整体:

class Test {

    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.getAll();
    }

}


结果:

获取头
获取躯体
获取脚



© 著作权归作者所有

刘新全
粉丝 13
博文 57
码字总数 29105
作品 0
兰州
程序员
私信 提问
为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的 API

作为Java程序员,我想很多人都知道日志对于一个程序的重要性,尤其是Web应用。很多时候,日志可能是我们了解应用程序如何执行的唯一方式。 所以,日志在Java Web应用中至关重要,但是,很多人...

Hollis
2018/11/26
0
0
设计模式15——Template Method设计模式

Template Method模板方法设计模式定义一个操作中算法的骨架,将具体步骤的执行延迟到子类中实现。Java中的抽象类就是使用了模板方法设计模式。模板方法设计模式结构如下: 以文档处理为例,T...

小米米儿小
2014/01/24
221
0
java日志commons-logging/log4j/slf4j/logBack需要知道的几件事

如果对于commons-loging、log4j、slf4j、LogBack等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对...

程序员诗人
2018/04/17
0
0
commons-logging + log4j源码分析

分析之前先理清楚几个概念 Log4J = Log For Java SLF4J = Simple Logging Facade for Java 看到Facade首先想到的就是设计模式中的门面(Facade)模式,实际上SLF4J 就是一个装"门面"的java日...

青山丶
08/07
0
0
Android也架构之四:门面模式解析获取的html代码

大家好,一个星期没有写博客了,最近在找工作,面试中啊。。。。 上一篇文章《Android也架构之三:简单工厂模式优化网络请求》中,我们知道了如何通过简单工厂模式去获取网络的内容,又知道了...

理工男海哥
2012/09/13
802
0

没有更多内容

加载失败,请刷新页面

加载更多

视频如何加水印?

很多视频制作者的视频都被他人盗用过,为了防止自己的劳动成果被他人窃取,给视频加水印对于视频制作者来说,是一件非常重要的事情。那么下面分享一个手机给视频加水印的方法,一起来看看吧!...

白米稀饭2019
20分钟前
3
0
004-Envelop-基于Blockstack的文件传输dapp

本篇文章主要介绍基于Blockstack的文件传输工具; ####A-链接地址 官网地址:https://envelop.app/ Github地址:https://github.com/envelop-app ####B-特性: 1: Share private files easil...

Riverzhou
22分钟前
5
0
SpringCloud——声明式调用Feign

Feign声明式调用 一、Feign简介 使用Ribbon和RestTemplate消费服务的时候,有一个最麻烦的点在于,每次都要拼接URL,组织参数,所以有了Feign声明式调用,Feign的首要目标是将Java HTTP客户端...

devils_os
28分钟前
5
0
《JAVA核心知识》学习笔记 (22. 数据结构)

22.1.1. 栈(stack) 栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶 (top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈...

Shingfi
34分钟前
5
0
你对AJAX认知有多少(1)?

AJAX(一) AJAX技术对于前段或者后端工程师来说,都是必不可缺的 那我们这几期都来细细品味一下AJAX的相关知识,直接上干货喽~ 1、什么是AJAX,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么...

理性思考
41分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部