博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
门面模式(Facade)解析
阅读量:6789 次
发布时间:2019-06-26

本文共 1443 字,大约阅读时间需要 4 分钟。

门面模式使用一个门面类来包装一些复杂的类,对外提供一个简单的访问方法。

见如下代码:

class CPU {	public void startup() {		System.out.println("cpu startup!");	}	public void shutdown() {		System.out.println("cpu shutdown!");	}}class Memory {	public void startup() {		System.out.println("memory startup!");	}	public void shutdown() {		System.out.println("memory shutdown!");	}}class Disk {	public void startup() {		System.out.println("disk startup!");	}	public void shutdown() {		System.out.println("disk shutdown!");	}}//门面类class Computer {	private CPU cpu;	private Memory memory;	private Disk disk;	public Computer() {		cpu = new CPU();		memory = new Memory();		disk = new Disk();	}	public void startup() {		System.out.println("start the computer!");		cpu.startup();		memory.startup();		disk.startup();		System.out.println("start computer finished!");	}	public void shutdown() {		System.out.println("begin to close the computer!");		cpu.shutdown();		memory.shutdown();		disk.shutdown();		System.out.println("computer closed!");	}}public class User {	public static void main(String[] args) {		Computer computer = new Computer();		computer.startup();		computer.shutdown();	}}
代码中Computer类就是一个门面类,可以通过它的方法来调用另三个类的方法,而不用一一调用。

      HibernateTemplate类也是一个典型的门面类,它是SessionFactory、Session、Query等类的门面,当客户端程序需要进行持久化查询时,程序无需调用这些类,而是直接调用HibernateTemplate门面类的方法即可。

     此外,J2EE应用里业务逻辑组件来封装DAO组件也是典型的门面模式。每个业务逻辑组件都是众多DAO组件的门面,系统的控制器类无需直接访问DAO组件,而只需与业务逻辑组件交互即可。

转载于:https://www.cnblogs.com/koushr/p/5873444.html

你可能感兴趣的文章
声明 ,const
查看>>
eclipse中java heap space问题解决方法
查看>>
windows下彻底删除oracle步骤
查看>>
LAMP平台下搭建论坛和博客系统
查看>>
关于学习的一些困惑
查看>>
RedHat系统怎么设置或更改屏幕分辨率
查看>>
spring mybatis整合配置文件
查看>>
02(maven+SSH)网上商城项目实战之数据库设计(PMD)
查看>>
谈Docker安全合规建设
查看>>
LR中的关联
查看>>
nginx配置php连接
查看>>
调整状态学会放下与五月份的个人计划
查看>>
Oracle中如何将姓名中有空格的字段更新成没有空格的?
查看>>
OpenStack主要逻辑模块–Keystone身份验证服务
查看>>
Java中ConcurrentHashMap的实现
查看>>
如何从零开始学习hadoop?
查看>>
有关tomcat的性能调优【待完善】
查看>>
QA和软件测试员的区别
查看>>
windows 批处理常用指令 -- 持续更新
查看>>
Jenkins+Shell+Docker实现自动化CI/CD发布Java项目
查看>>