设计模式心得:七——外观模式

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口可以使得子系统更加容易使用。

从定义中可以知道,外观模式是为了封装一个复杂的子系统的操作,以提供用户简单易懂的接口。这样做除了能够方便的使用外观模式封装的接口外,还能到达解耦的目的,从复杂的系统解耦只与高层接口交互。

在生活中有很多外观模式的例子,例如:我们的电脑,它的启动就是一个外观模式很好的例子,一个启动按钮就是一个接口,我们只需要知道按下启动按钮就知道它能启动运行就可以了,具体它里面干了哪些事我们一无所知,也不需要知道。

下面就是模拟电脑开启的代码

 

代码
<?php
class Computer {

private $_memory;
private $_mainboard;
private $_cpu;
private $_harddisk;

public function __construct(Memory $memory, Mainboard $mainboard, CPU $cpu, HardDisk $harddisk)
{
$this->_memory = $memory;
$this->_mainboard = $mainboard;
$this->_cpu = $cpu;
$this->_harddisk = $harddisk;
}

public function start()
{
$this->_mainboard->open();
$this->_cpu->start();
$this->_memory->load();
$this->_harddisk->read();
}
}

class Mainboard {
public function open()
{
echo '主板加电<br />';
}
}

class CPU {
public function start()
{
echo 'CPU开始运转<br />';
}
}

class Memory {
public function load()
{
echo '加载内存<br />';
}
}

class HardDisk {
public function read()
{
echo '读取硬盘<br />';
}
}

$computer = new Computer(new Memory(), new Mainboard(), new CPU(), new HardDisk());

$computer->start();
?>

// 结果
// 主板加电
// CPU开始运转
// 加载内存
// 读取硬盘

posted on 2010-10-18 22:30  陌路vs追忆  阅读(287)  评论(0编辑  收藏  举报

导航