介绍
为子系统的一组接口提供一个一致的对外接口,隐藏系统的复杂性。
何时使用:定义系统的入口
优点:
- 减少系统依赖;
- 提高灵活性和安全性。
缺点:
不符合开闭原则,修改比较麻烦。
代码实现:
<?php
class Run{
function sportRun(){
echo 'run<br>';
}
}
class Walk{
function sportWalk(){
echo 'walk<br>';
}
}
class Facade{
private $run;
private $walk;
function __construct(){
$this->run = new Run();
$this->walk = new Walk();
}
function facadeRun(){
$this->run->sportRun();
}
function facadeWalk(){
$this->walk->sportWalk();
}
}
$facade = new Facade;
$facade->facadeRun();
$facade->facadeWalk();
外观模式是一种设计模式,它提供了一个统一的接口,用于子系统的多个接口,降低了系统的复杂性并减少了模块间的依赖。通过创建一个 facade 类,对外暴露简洁的接口,隐藏内部的具体实现。在 PHP 示例中,`Facade` 类整合了 `Run` 和 `Walk` 子系统的功能,使得客户端可以更方便、安全地使用这些功能。然而,该模式不遵循开闭原则,当需要修改子系统时,可能需要更新外观类,增加了修改难度。
151

被折叠的 条评论
为什么被折叠?



