1. 场景1
客户自己装机,需要一一去买配件:cpu、主板。。。
找专业的公司,由公司去处理:
2. 场景2
代码生成工具有4个模块
client使用时依次创建3个对象
public class Client {
public static void main(String[] args) {
//现在没有配置文件,就直接使用默认的配置
//通常情况下,三层都应该生成,也就是说客户端必须
//对这些模块都有了解,才能够正确使用它们
new Presentation().generate();
new Business().generate();
new DAO().generate();
}
}
3. 外观模式
大系统包含子系统
Facade对3个Module都调用
生成一个大系统的外观对象:
//外观对象
public class Facade {
//示意方法,满足客户需要的功能
public void test(){
//在内部实现的时候,可能会调用到内部的多个模块
AModuleApi a = new AModuleImpl();
a.testA();
BModuleApi b = new BModuleImpl();
b.testB();
CModuleApi c = new CModuleImpl();
c.testC();
}
}
客户调用:
public class Client {
public static void main(String[] args) {
// //不用Facade,需要自己跟多个模块交互
// AModuleApi a = new AModuleImpl();
// a.testA();
// BModuleApi b = new BModuleImpl();
// b.testB();
// CModuleApi c = new CModuleImpl();
// c.testC();
//
// System.out.println("使用Facade----------------------〉");
//使用了Facade
new Facade().test();
}
}