门面模式(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();
}
}