Facade(门面模式)是一个很经典的模式,和IOC配合使用你的项目可以做到低耦合,同时使用方便 ### 什么是门面模式 门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 就如同医院的接待员一样,门面模式的门面类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与门面对象打交道,而不需要与子系统内部的很多对象打交道。 ### 和IOC配合使用 如果底层的类使用频率相当高,所有地方使用都需要 Ioc.get(A::class),或者进行注入,使用起来还是有些不方便的,我们可以通过门面模式进行解决; 实例: ``` class ABFacade{ public static function a1(){ Ioc.get(A::class)->a1(); } public static function a2(){ Ioc.get(A::class)->a2(); } public static function b1(){ Ioc.get(B::class)->b1(); } public static function b2(){ Ioc.get(B::class)->b2(); } } ``` 这样既做到了低耦合,同时通过静态调用,使用方便了 #### Rap内部 Facade * * * * * |类 |作用 | | --- | --- | |Cache | 缓存 | |Config | 配置 | |Log | 日志 | |Storage | 文件存储 |