1 Facade 模式的定义
为子系统中的一组接口提供一个一致的界面。即在一个项目中,把通用的部分接口抽离出来供各子模块使用。
2 应用实例
数据库 JDBC 的应用,log4j + slf4j 都是Facade的典型应用。在各个子模块中只要注入相应对象就可以使用。
3 如何使用?
比如你玩LOL,买日炎这个装备,每个玩家相当于一模块;每个人买到这件装备的过程是不同的,第一件可能是先是一件布甲或者红水晶;但是最后都是全部小件合成日炎。所以合成装备这个动作就可以抽出一个接口,供各个模块使用。
package xx.study.design.facade;
/**
* facade接口 最小细化工具类
*/
public class SynthesisEquipment {
public static void synthesisEquipment(){
System.out.println("恭喜合成装备");
}
}
package xx.study.design.facade;
public class PlayerJungle {
public void buyEquipmet(){
System.out.println("我打野 买了布甲,买了。。。要合日炎装备了!");
SynthesisEquipment.synthesisEquipment();
}
}
package xx.study.design.facade;
public class PlayerUpLoad {
public void buyEquipmet(){
System.out.println("我上路 买了布甲,买了。。。要合日炎装备了!");
SynthesisEquipment.synthesisEquipment();
}
}