上一篇的java标准日志出现了日志门面,肯定有人会问什么是门面?
门面提供统一的接口去访问多个子系统的不同接口,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。简单地说:通过门面就可使用该系统所有的功能,而不用接触背后复杂的关系
门面模式的组成:
这里举例看电影的场景,以前看电影需要去电影院看上映列表
,然后买电影票
,最后买爆米花
,客户需接触三个流程。
现通过手机门面我们可将上面三步完成,而只需接触手机这个门面即可
// 观影系统
public class MoviesSystem {
public void listMovies() {
System.out.println("上映列表");
}
// other funtion ...
}
// 购票系统
public class TicketSystem {
public void buyTicket() {
System.out.println("买电影票");
}
public void refundTicket() {
System.out.println("退电影票");
}
// other funtion ...
}
// 服务系统
public class ServiceSystem {
public void buyPopCorn() {
System.out.println("买爆米花");
}
public void buyCola() {
System.out.println("买可乐");
}
// other funtion ...
}
public class Facade {
MoviesSystem moviesSystem = new MoviesSystem();
TicketSystem ticketSystem = new TicketSystem();
ServiceSystem serviceSystem = new ServiceSystem();
public void watchMovie(){
moviesSystem.listMovies();
ticketSystem.buyTicket();
serviceSystem.buyCola();
}
}
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.watchMovie();
}
}
// 观影列表
// 买电影票
// 买可乐