外观模式相对来说是一种比较常见同时也是比较简单的一种设计模式,我们的日常的开发中有时在不有自主中就会用到外观模式,我们接下来用我们平时去饭店吃饭这个场景来说明外观模式。如果没有饭店,我们吃饭需要自己买菜,有一个自己的厨房,然后做饭。但是正是因为有了饭店的存在,我们不需要和上面的三个对象打交道,我们只要直接和饭店打交道就可以代替我们完成上述的动作,达到吃饭的目的,下面用简单的代码来实现外观模式:
package com.zzit.facade;
/**
* 外观模式:用一个人去饭店吃饭的动作来模拟外观模式
* Facade类相当于一个饭店
* @author yufu
*
*/
public class Facade {
public void eat() {
Food food = new Food();
food.prepare();
Chicken ch = new Chicken();
ch.save();
Cook cook = new Cook();
cook.make();
}
}
class Food {
public void prepare() {
System.out.println("准备食材");
}
}
class Chicken {
public void save() {
System.out.println("厨房储存食材");
}
}
class Cook {
public void make() {
System.out.println("厨师做饭");
}
}
测试外观模式,当我们需要吃饭时(中间的过程全部由饭店来代替我们完成):
package com.zzit.facade;
public class FacadeTest {
public static void main(String[] args) {
Facade facade=new Facade();
facade.eat();
}
}
输出结果:
准备食材
厨房储存食材
厨师做饭