/**
* 设计模式(10)
* 外观模式
*
* 外观模式和装饰器模式基本相同
* 但是外观模式的存在是为了隐藏细节, 并非扩展功能
*
* 该模式适用于底层类调用起来繁琐的情况
* 设计一个外观类对其进行简单的封装 , 简化调用者的调用方法
*
*/
// 宠物类 + 猫狗实现类
interface Pet {
void run();
}
class Dog implements Pet {
@Override
public void run() {
System.out.println("dog.run");
}
}
class Cat implements Pet {
@Override
public void run() {
System.out.println("cat.run");
}
}
// 建立外观类 - 用来操作猫狗的控制器
class PetController {
private Pet dog;
private Pet cat;
public PetController() {
dog = new Dog();
cat = new Cat();
}
public void dogRun() {
dog.run();
}
public void catRun() {
cat.run();
}
}
// 测试
// Test Facade Pattern
public class main {
public static void main(String[] argv) {
PetController petController = new PetController();
petController.dogRun();
petController.catRun();
}
}
/*
输出:
dog.run
cat.run
*/
转载于:https://my.oschina.net/tasker/blog/815671