外观模式

author author     2022-08-20     446

关键词:

 

 1 <?php
 2 
 3 /**
 4  * 门面模式(Facade)又称外观模式,用于为子系统中的一组接口提供一个一致的界面。
 5  * 门面模式定义了一个高层接口,这个接口使得子系统更加容易使用:引入门面角色之后,
 6  * 用户只需要直接与门面角色交互,用户与子系统之间的复杂关系由门面角色来实现,从而降低了系统的耦合度。
 7  */
 8 
 9 
10 interface Os
11 {
12     /**
13      * halt the OS
14      */
15     public function halt();
16 }
17 
18 interface Bios
19 {
20     /**
21      * execute the BIOS
22      */
23     public function execute();
24 
25     /**
26      * wait for halt
27      */
28     public function waitForKeyPress();
29 
30     /**
31      * launches the OS
32      *
33      * @param OsInterface $os
34      */
35     public function launch(OsInterface $os);
36 
37     /**
38      * power down BIOS
39      */
40     public function powerDown();
41 }
42 
43 
44 
45 
46 
47 class Facade
48 {
49     /**
50      * @var OsInterface
51      */
52     protected $os;
53 
54     /**
55      * @var BiosInterface
56      */
57     protected $bios;
58 
59     
60     /**
61      * This is the perfect time to use a dependency injection container
62      * to create an instance of this class
63      *
64      * @param BiosInterface $bios
65      * @param OsInterface   $os
66      */
67     public function __construct(BiosInterface $bios, OsInterface $os)
68     {
69         $this->bios = $bios;
70         $this->os = $os;
71     }
72 
73     /**
74      * turn on the system
75      */
76     public function turnOn()
77     {
78         $this->bios->execute();
79         $this->bios->waitForKeyPress();
80         $this->bios->launch($this->os);
81     }
82 
83     /**
84      * turn off the system
85      */
86     public function turnOff()
87     {
88         $this->os->halt();
89         $this->bios->powerDown();
90     }
91 }
View Code

 

“headfirst设计模式“:外观模式

外观模式外观模式定义:外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。类图如下:要点:●外观模式为复杂子系统提供了一个简单接口,并不为子系统添加新... 查看详情

设计模式外观模式

wiki:外观模式(Facadepattern),是软件工程中常用的一种软件设计模式,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。相当于将一系列不同的类方法调用,封装到一个新类的方法中。抽象外观模式... 查看详情

23种设计模式——外观模式接口隔离

外观模式文章目录外观模式意图什么时候使用外观真实世界类比外观模式的实现外观模式的优缺点亦称:Facade意图外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模... 查看详情

设计模式解密-外观模式(门面模式)

1、简介外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接... 查看详情

11.设计模式_外观模式

...系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作”门面“模式。下面就具体介绍下外观模式。二、外观模式的详细介绍2.1定义外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义... 查看详情

设计模式外观模式

一、前言  分析完适配器模式后,接着看外观模式,外观模式很简单,可以理解为在复杂系统上封装了一层,提供了统一的接口,而让客户端只需要与该接口通信便可控制背后复杂的系统。二、外观模式定义  定义:提供了... 查看详情

设计模式之外观模式

什么是外观模式?外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端... 查看详情

设计模式:学习笔记(11)——外观模式

设计模式:学习笔记(11)——外观模式引入外观模式什么是外观模式  外观模式(FacadePattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加... 查看详情

2结构型模式之-外观模式

外观模式的介绍:外观模式在开发运用中的频率非常高,尤其是现阶段各种第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式,通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样就能够降低用户使... 查看详情

外观模式(代码片段)

模式动机  引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。 模式定义   外观模式(FacadePattern):外部与一个子系统的通信必... 查看详情

外观模式

---恢复内容开始---外观模式外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调... 查看详情

第八式外观模式

外观模式什么是外观模式  外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。  生活中到处都是外观模式的设计,我们用的电视遥控器,上面的按钮我们知... 查看详情

外观模式

外观模式:将一个或数个了的复杂的一切都隐藏起来,只显示一个干净美好的外观。也就是简化接口。 查看详情

设计模式之-外观模式(facadepattern)(代码片段)

外观模式外观模式(FacadePattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为... 查看详情

外观模式/建造者模式

外观模式(门面模式)通过在必需的逻辑和方法的集合前创建简单的外观接口,来隐藏调用对象的复杂性.classA{publicfunctionsong($songList){ foreach($songListas$val){ echo$val.‘.mp3‘; }}}classB{publicfunctionsong($songList){ foreach($songListas$val){ ech 查看详情

设计模式外观模式

外观模式外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。该模式起名为外观模式就很能体现出他的特点,一个子系统里得内容太过复杂,以至于另一... 查看详情

headfirst设计模式之外观模式

一、定义外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观模式不只是简化了接口,也将客户从组件的子系统中解耦。外观和适配器可以包装许多类,但是外... 查看详情

设计模式----外观模式

  外观模式    Facade:为子系统中的一组接口提供一个一致的界面。此模式定义了一个高层接口,这个接口使得这一子系统更加easy使用。外观模式结构图    外观模式的实例:    ... 查看详情