门面模式
在看其他设计模式的时候,书中提到一句,细心的读者会发现,这里用到了门面模式,这个模式太常见了,以至于不经意就用到了他,于是我也便看了这个门面模式。
门面模式是一个非常简单的模式,应该是看到现在,最容易理解,也真的是平时一直在使用的,不过按照惯例,还是需要总结一下。
门面模式是对象的结构模式,指外部与一个子系统的通信通过一个统一的门面进行。
门面模式提供一个高层次的接口,使得子系统更加易用。
门面模式中包括2个角色:
门面角色Facade:客户端调用该角色,他知道子系统的功能,会将客户端的请求发送到相应的系统中去
子系统角色SubSystem:是一个类的结合,负责调用与客户端请求相关的子系统。
看下示例程序吧,从类名就可以看出他们所扮演的角色
两个SubSystem,代表着子系统
public class SubSystem {
public void hello(){
System.out.println("SubSystem says Hello");
}
public void bye(){
System.out.println("SubSystem says Bye");
}
}
public class SubSystem {
public void hello(){
System.out.println("SubSystem says Hello");
}
public void bye(){
System.out.println("SubSystem says Bye");
}
}
Facade门面,给我的概念类似于一个管理类,把对子系统的调用都写在了这里面
public class Facade {
private SubSystem subSystem;
private SubSystem2 subSystem2;
public Facade(){
subSystem=new SubSystem();
subSystem2=new SubSystem2();
}
public void hello(){
subSystem.hello();
subSystem2.hello();
}
public void bye(){
subSystem.bye();
subSystem2.bye();
}
}
执行一下
public class FacadePattern {
public static void main(String[] args) {
Facade facade=new Facade();
facade.hello();
facade.bye();
}
}
这是运行结果:
SubSystem says Hello
SubSystem2 says Hello
SubSystem says Bye
SubSystem2 says Bye
适合使用的情况
1 为一个复杂子系统提供一个简单接口
2 提高子系统的独立性
3 在层次化结构中,可以使用Facade模式定义系统中每一层的入口。
网上还提到了门面模式在数据库操作过程中的应用,例如一个封装数据库一些操作了的DAO层,在客户端到数据库之间,添加入“门面”,“门面”调用DAO层方法,实现相关查询并返回处理后的结果,这样子一来避免了客户端直接操作数据库。
分享到:
相关推荐
RRT学习笔记——记录
Python学习笔记——运算符 运算符: 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算
2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据...
通过阅读和学习这些JAVA学习笔记,开发者不仅可以掌握JAVA编程的基本技能,还能深入了解其设计理念,从而更好地应对各种实际开发问题。不断更新和完善自己的JAVA知识体系,对于成为一名优秀的JAVA开发者至关重要。
ArcGIS客户端开发学习笔记——XML学习
A星算法学习笔记——记录
【Java学习笔记——全面解析】 Java作为一种广泛应用的高级编程语言,是软件开发领域的核心力量。这份"学习笔记——资料"涵盖了Java学习的各个方面,旨在帮助初学者和有经验的开发者巩固基础,提升技能。以下是对这...
Python学习笔记——输入input(),input()使用,两个练习。
Python学习笔记——对象和类
DAO(Data Access Object)设计模式是一种软件设计模式,主要用于数据库操作的封装,它将业务逻辑与数据访问逻辑分离开来,使得系统更加模块化,提高了代码的可复用性和可测试性。在Web开发中,DAO模式是常用的数据...
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...
MySQL学习笔记——“语法总结”
### Java设计模式学习笔记——外观模式(Facade Pattern) #### 概述 设计模式是软件工程领域中一种解决常见问题的可复用解决方案。在Java开发过程中,掌握设计模式能够帮助开发者更好地组织代码结构,提高代码的...
Web 前端学习笔记——HTML 基础 本文主要介绍了 Web 前端学习笔记——HTML 基础相关知识点,涵盖了浏览器内核、Web 标准、HTML 语言等方面。 一、浏览器内核 浏览器内核是指浏览器核心引擎,负责解析和渲染网页。...