设计模式系列--门面模式
Posted plus666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式系列--门面模式相关的知识,希望对你有一定的参考价值。
定义
门面模式又叫外观模式,祖的组词提供了一个统一的接口,用来访问子系统中的一群接口。
门面模式定义了一个高层接口,简化了调用过程,无需深入了解子系统,以防给子系统带来风险;减少系统依赖、松散耦合;更好的划分访问层次,提高了安全性;遵循迪米特法则,即最少知道原则
实现
在我们平常外出旅游时,需要乘坐交通工具,看地图,在线支付等。假如我们把旅行独立一个系统,地图独立一个系统,支付独立一个系统。在客户端看来,需要三个不同系统间的调用。使用门面模式后,我们只需要对客户端提供唯一的入口,三个系统交给门面类管理
用户 User
public class User {
private String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
出行系统 TripSystemService
public class TripSystemService {
public void doTrip(User user) {
System.out.println(user.getName() + ">>>>出行");
}
}
地图系统 MapSystemService
public class MapSystemService {
public void doMap(User user) {
System.out.println(user.getName() + ">>>>使用地图");
}
}
支付系统 PaySystemService
public class PaySystemService {
public void doPay(User user) {
System.out.println(user.getName() + ">>>>在线支付完成");
}
}
门面服务 FacadeService
public class FacadeService {
private MapSystemService mapSystemService = new MapSystemService();
private PaySystemService paySystemService = new PaySystemService();
private TripSystemService tripSystemService = new TripSystemService();
public void doOut(User user) {
tripSystemService.doTrip(user);
mapSystemService.doMap(user);
paySystemService.doPay(user);
}
}
测忠的组词试 Test
public class Test {
public static void main(String[] args) {
User user = new User("小明");
FacadeService facadeService = new FacadeService();
facadeService.doOut(user);
}
}
以上是关于设计模式系列--门面模式的主要内容,如果未能解决你的问题,请参考以下文章