0%
概念
门面模式(facade)又称外观模式,用于为子系统中的一组接口提供一个一致的界面。门面模式定义了一个高层接口,这个接口使得子系统更加容易使用;引入门面角色之后,用户只需要直接与门面角色交互,用户与子系统之间的复杂关系由门面角色来实现,从而降低了系统的耦合度。
作用
- 为一些复杂的子系统提供一组接口。
- 提高子系统的独立性
- 在层次化结构中,可以使用门面模式定义系统的每一层的接口
优点
- 它对于客户屏蔽了子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。
- 实现了子系统与客户之间的松耦合关系。
- 如果应用需要,它并不限制它们使用子系统类。因此可以在系统易用性与能用性之间加以选择。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| <?php class Camera { public function turnOn() { echo 'turn on camera'; }
public function turnOff() { echo 'turn off camera'; } }
class Light { public function turnOn() { echo 'turn on light'; }
public function turnOff() { echo 'turn off light'; } }
class Facade { private $camera; private $light;
public function __construct() { $this->camera = new Camera(); $this->light = new Light(); }
public function activate() { $this->camera->turnOn(); $this->light->turnOn(); }
public function deactivate() { $this->camera->turnOff(); $this->light->turnOff(); } }
class Client { private static $securit; public static function main() { self::$securit = new Facade(); self::$securit->activate(); self::$securit->deactivate(); } }
Client::main();
|