世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
- 意图
对外提供统一接口,屏蔽内部负复杂的实现流程,例如:springMVC的 DAO Service Controller。 - 实例
// 功能接口
interface FacadeCap{
void play();
}
class FacadeCapImpl1 implements FacadeCap{
@Override
public void play() {
System.out.println("Facade1::play()");
}
}
class FacadeCapImpl2 implements FacadeCap{
@Override
public void play() {
System.out.println("Facade2::play()");
}
}
class FacadeCapImpl3 implements FacadeCap{
@Override
public void play() {
System.out.println("Facade3::play()");
}
}
// 外部统一调用接口
interface Facade{
void play1();
void play2();
void play3();
}
class FacadeImpl implements Facade{
private FacadeCap facadeCap1;
private FacadeCap facadeCap2;
private FacadeCap facadeCap3;
public FacadeImpl(){
facadeCap1 = new FacadeCapImpl1();
facadeCap2 = new FacadeCapImpl2();
facadeCap3 = new FacadeCapImpl3();
}
@Override
public void play1() {
facadeCap1.play();
}
@Override
public void play2() {
facadeCap2.play();
}
@Override
public void play3() {
facadeCap3.play();
}
}
- 测试
// 测试
class FacadeTest{
public static void main(String[] args){
Facade facade = new FacadeImpl();
facade.play1();
facade.play2();
facade.play3();
}
}
运行结果:
Facade1::play()
Facade2::play()
Facade3::play()