Java设计模式之-门面模式(Façade)

由于整个系统是按照OO概念进行设计的,当需要实现某个需求时,就需要将多个类进行组合使用。
如果不提供示例类的话,客户可能根本不知道如何对这些类进行组合并正确使用。

如下图所示:底层类多且关系复杂,需要了解很多才能正确使用。


Java设计模式之-门面模式(Façade)_第1张图片
复杂的底层调用

这个时候我们需要将底层的多个类、方法等进行整合,进而提供一个方便的“门面”给客户,用以
调用后台的功能。当然,这个门面需要设计良好,可以向底层传递关键参数,而更多地注重在隐藏
调用细节这一方面。

Java设计模式之-门面模式(Façade)_第2张图片
门面模式

Java中,多种Util可以看做是门面模式的一种体现。客户不需要针对底层API进行学习,将底层API进
行堆砌而实现功能,只要直接调用某一专门的API便可达到效果。

另外在Java Swing中的JOptionPane也可以看做是门面模式的一种体现。底层的界面实现,选项判断
等逻辑都被隐藏,用户只要进行相应的调用,传入参数,并获得返回值即可。

值得一提的是,实现了门面模式,虽然能够对底层进行一定程度的抽象,但是也在一定程度上增加了
底层类之间的耦合,门面类的逻辑显得较为固定。因此,需要在灵活性和抽象性之间选择平衡点。

你可能感兴趣的:(Java设计模式之-门面模式(Façade))