首页IT科技php8大设计模式(浅谈PHP设计模式的门面模式)

php8大设计模式(浅谈PHP设计模式的门面模式)

时间2025-05-05 09:45:33分类IT科技浏览4214
导读:简介: 门面模式又称之为外观模式,属于结构型的设计模式。 用于为子系统中的一组接口提供一致的调用方案。门面模式定义了一个高层接口,引入门面角色之后,只需要直接与门面角色交互,降低了系统的耦合度。 适用场景: 最经典的Laravel的Facade,当使用一些库的时候,...

简介:

门面模式又称之为外观模式            ,属于结构型的设计模式            。

用于为子系统中的一组接口提供一致的调用方案                 。门面模式定义了一个高层接口                 ,引入门面角色之后     ,只需要直接与门面角色交互      ,降低了系统的耦合度     。 适用场景: 最经典的Laravel的Facade                 ,当使用一些库的时候           ,不需要了解底层系统如何实现      ,只需要知道如何使用门面调用即可      。 为一些复杂的子系统提供一个简单对外开放的调用方案                 。 优点: 对客户端                 ,屏蔽了子系统的实现逻辑           ,只留出可供使用的方法,让开发人员很方便的看出来子系统可供调用的功能           。 实现了子系统与调用端的松耦合关系      。 扩展性很强                 ,子类系统不受限制                 。 缺点:

隔绝了子系统的具体实现代码                ,增加代码溯源的难度           。

代码: //注:这里的门面写法和Laravel中的不一样,Laravel的门面是基于门面模式提供了一套强大且优雅的模块子系统解决方案            ,而此处的门面只是一种实现门面思想的示例。 class Facade { private $pc; private $mobile; public function __construct(Mobile $mobile, PC $pc) { $this->mobile = $mobile; $this->pc = $pc; } public function turnOn() { $this->mobile->turnOn(); $this->pc->turnOn(); } public function turnOff() { $this->pc->turnOff(); $this->mobile->turnOff(); } } //子系统接口 interface PC { public function turnOn(); public function turnOff(); } //子系统接口 interface Mobile { public function turnOn(); public function turnOff(); } //子系统实现 class ASUS implements PC { public function turnOn() { echo 华硕电脑开机 . PHP_EOL; } public function turnOff() { echo 华硕电脑关机 . PHP_EOL; } } //子系统实现 class Vivo implements Mobile { public function turnOn() { echo Vivo手机开机 . PHP_EOL; } public function turnOff() { echo Vivo手机关机 . PHP_EOL; } } //调用端========================================== $facade = new Facade(new Vivo(), new ASUS()); $facade->turnOn(); $facade->turnOff();

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
计算机如何备份数据(如何备份计算机?)