外观(门面)模式的应用

239 阅读1分钟

外观模式介绍

外观模式(Facede-Pattern):将一个或数个类的复杂逻辑隐藏在背后,只露出一个干净美好的外观。
外观模式提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子 系统更容易使用。
如下:

外观模式应用

遇到的问题图示

问题:

这是不安全的做法,request和response的实例可以向下转型为Request/Response类型,这样就可以调用他们的public方法了。
不能将public方法设为private,因为会被其他的类调用,但是这两个方法在servlet中应该是不可的,所以这个方法不好。
一种解决方法:
将Request类和Response类设置default,这样就不能从包外进行访问了。
第二种解决方法:
外观模式。

运用外观模式解决


www.processon.com/view/link/5…

如图所示,创建两个Facade类,其中具有private的对应request/response属性。 这样,程序员依然可以将ServletRequest实例向下转型为RequestFacade对象,但是他们只能访问ServletRequest中的方法,无法使用Request中不想在servlet中被使用的方法了。