JAVA设计模式——(四)门面模式
JAVA设计模式——(四)门面模式
- 概念
- 理解
- 实现
- 门面代码
- 测试
- 适用性
概念
在一个子系统中提供一个统一的接口用于访问系统功能,使得子系统更加易于使用。
理解
这个模式相对简单,非常容易理解。最简单的就是一个买票的app,我们下单之后,app会发送请求到后端,后端的各种操作我们都是不知道的,隐蔽了实现的细节。所以这个app的前端的各种功能,就是一个门面模式。
实现
package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/23 19:41* @Contact 643947568@qq.com*/
public class BookAirTickets {public void bookTickets(){System.out.println("订购飞机票");}
}
package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/23 19:42* @Contact 643947568@qq.com*/
public class BookBusTickets {public void bookTickets(){System.out.println("订购汽车票");}
}
package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/23 19:42* @Contact 643947568@qq.com*/
public class BookTrainTickets {public void bookTickets(){System.out.println("订购火车票");}
}
门面代码
package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/23 19:43* @Contact 643947568@qq.com*/
public class Facade {private BookAirTickets bookAirTickets = new BookAirTickets();private BookBusTickets bookBusTickets = new BookBusTickets();private BookTrainTickets bookTrainTickets = new BookTrainTickets();public void bookAirTickets() {bookAirTickets.bookTickets();}public void bookBusTickets() {bookBusTickets.bookTickets();}public void bookTrainTickets() {bookTrainTickets.bookTickets();}}
测试
package cn.sh.designepattern.example01;/*** 门面模式* 在一个子系统中提供一个统一的接口用于访问系统功能,使得子系统更加易于使用。** @Author song* @Version 0.0.1* @Date 2025/4/23 19:32* @Contact 643947568@qq.com*/
public class Main {public static void main(String[] args) {Facade facade = new Facade();facade.bookAirTickets();facade.bookBusTickets();facade.bookTrainTickets();}
}
适用性
为一个复杂的子系统提供一个简单的接口。隐藏内部细节。为子系统提供简单的接口门面,让系统易于使用。
此外,对于系统分层展示,也十分有效。