码迷,mamicode.com
首页 > 其他好文 > 详细

外观模式

时间:2017-01-08 15:22:27      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:isp   inject   create   images   halt   关系   time   osi   res   

 

技术分享

技术分享
 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

 

外观模式

标签:isp   inject   create   images   halt   关系   time   osi   res   

原文地址:http://www.cnblogs.com/hangtt/p/6261992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!