百度定义:Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。它是为子系统中的一组接口所提供的一个一致的界面。
总而言之就是通过新增一个类将另外几个类进行整合。对外提供一个更简洁的调用方法。
比如你想要请假,首先得需要项目经理审核,接着是总经理,最后是老板,自己一个个向他们申请。
class ProjectManager{
void procheck(){
System.out.println("项目经理通过");
}
}
class GeneralManager{
void gencheck(){
System.out.println("总经理通过");
}
}
class BossManager{
void bosscheck(){
System.out.println("老板通过");
}
}
public static void main(String[] args) {
//普通调用
new ProjectManager().procheck();
new GeneralManager().gencheck();
new BossManager().bosscheck();
}
可是这样太麻烦了,这需要在main方法中调用了三个对象方法,那可不可以简化一下,只要调用一个对象方法就行了,于是外观模式就出现了。它需要你新建一个类,在这个新建的类中加一个方法整合一下这三个对象方法,之后你直接调用他的对象方法就行了。
public class Check {
void check(){
new ProjectManager().procheck();
new GeneralManager().gencheck();
new BossManager().bosscheck();
}
}
public static void main(String[] args) {
//使用外观(facade)模式
new Check().check();
}
感觉电脑的例子更形象:(参考)
电脑整机是 CPU、内存、硬盘的外观。有了外观以后,启动电脑和关闭电脑都简化了。
直接 new 一个电脑。
在 new 电脑的同时把 cpu、内存、硬盘都初始化好并且接好线。
对外暴露方法(启动电脑,关闭电脑)。
启动电脑(按一下电源键):启动CPU、启动内存、启动硬盘
关闭电脑(按一下电源键):关闭硬盘、关闭内存、关闭CPU
网友评论