外观模式(Facate)不需要特殊去记忆,因为你可能在不知不觉间就已经用过了这个模式
设计初期,可以将不同层分离,层和层之间创建外观模式
当内部功能太多时,可以提供一个高级的外观类,用户不需要关心方法内是如何实现的,用来简化用户的使用难度
白话讲就是:想要一个高级点的功能时,可以把能用来实现此方法的低级功能组合到这个类中,调用此高级功能时,只需要调用高级功能名就OK了:整合并实现高级功能
此模式不符合开闭原则;
外观模式主要是用来应对这种情况的:
假如说,你已有一个5岁左右的小孩子,你想要教他如何自己吃橘子,应该如何教他呢?
1、先教他如何分辨哪些是新鲜的橘子,哪些是已经烂掉的不能吃的橘子。
2、教他如何给橘子扒皮。
3、告诉他橘子的哪些可以吃掉,哪些不能吃。
4、教他吃完剩下的橘子皮应该丢到哪里。
当你教会了孩子如何吃橘子以后,你就可以命令他,或者孩子自己就可以让自己吃橘子了
转换成代码就是:
public void Chijuzi吃橘子()
{
Fenbianshiwu分辨食物(yidaijuzi一袋橘子);
Geijuzibapi给橘子扒皮(yigejuzi一个橘子);
Panduankeshiyongdebufen判断可食用的部分(juzipi橘子皮,juziban橘子瓣);
Renglaji扔垃圾(juzipi橘子皮);
}
外界呢,可以通过调用 Chijuzi吃橘子 方法来命令孩子吃橘子