php设计模式之外观模式

外观模式

为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用,外观模式又称门面模式
使用外观模式的原因:
1,开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
2,维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
3,外观模式可以隐藏来自调用对象的复杂性。

外观模式的目的在于降低系统的复杂程度

目录结构

|facade  #项目根目录
|--Think  #核心类库
|----depot.php  #仓库类
|----facade.php  #外观角色
|----Loder.php  #自动加载类
|----orders.php  #订单类
|----products.php  #商品类
|----user.php  #用户系统
|--index.php #单一的入口文件

代码实践

商品类 Think/products.php

订单类 Think/orders.php

用户系统 Think/user.php

仓库类 Think/depot.php

自动加载类 Think/Loder.php

没有使用外观模式 index.php入口文件

输出

用户名为wong购买的商品帽子

使用外观模式 外观角色 Think/facade.php

入口文件 index.php

输出

用户名为wong购买的商品裤子

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

优点: 1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。

缺点:不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。

使用场景: 1、为复杂的模块或子系统提供外界访问的模块。 2、子系统相对独立。 3、预防低水平人员带来的风险。

上一篇 php设计模式之代理模式
下一篇 php设计模式之桥接模式

你可能感兴趣的:(php设计模式之外观模式)