1、门面模式举例,医院设置一个接待员的位置:
- 病人只接触接待员,由接待员与各个部门打交道
2、门面模式的结构
- 门面角色会将所有从客户端发来的请求委派到相应的子系统去
- 使用门面模式还有一个附带的好处,就是能够有选择性地暴露方法
- 一个模块中定义的方法可以分成两部分,一部分是给子系统外部使用的,一部分是子系统内部模块之间相互调用时使用的
- 有了Facade类,那么用于子系统内部模块之间相互调用的方法就不用暴露给子系统外部了
3、门面模式的优点
- 松散耦合:松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护
- 简单易用:客户端不再需要了解子系统内部的实现,只需要跟门面类交互就可以了
- 更好的划分访问层次:有些方法是对系统外的,有些方法是系统内部使用的
- 把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节