设计模式(九):门面/外观模式

门面模式(Facade)又称外观模式

为客户端提供了一个客户端可以访问系统的接口。降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。

何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。 2、定义系统的入口。

应用实例: 1、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。

门面模式与建造者模式类似,不过Builder 倾向于解决创建复杂的对象的问题,对象有复杂的内部结构,我们可以根据变化灵活的组合。而Facade 倾向于解决内部系统各个类之间复杂逻辑的问题,降低客户端使用系统的难度。

示例代码:

//系统角色类
class Register {
    public static function register() {    
    }
}
class Pay {
    public static function pay() {    
    }
}
class Medication {
    public static function getMedication() {    
    }
}
//门面角色类
class Facade {
    public function buyMedition() {
          Register::register();
          Pay::pay() ;
          Medication::getMedication();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容