定义:
要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用
目标:
接口隔离和迪米特法则
业务场景举例:
动物园很大,最初有一个管理园,称为园长。园长有很多事情,其中一个是给动物打针,那园长就要逐一给所有动物打针。
后来园长觉得这样不行,所以给动物园划分了不同的区域,每个区域分配一个管理员(门面),园长不再需要逐一给动物打针,只需要通知相应的管理园即可
迪米特法则,原话是一个类只与自己的朋友通信和调用。与此同时,还有一个隐藏原则:朋友越少越好,这样可以降低系统复杂度,提升可维护性
感想:门面模式,体现的更多的是分治原则,把大的模块和系统细分为更细的模块、部门。而模块内的对象,通过统一的包装类(门面类)操作内部对象或调用相应逻辑。
打断:sping中常用的拦截器过滤器,是否属于这个范畴?
BTW:拦截器与过滤器的区别?