首页 > 学院 > 开发设计 > 正文

外观模式

2019-11-08 01:36:04
字体:
来源:转载
供稿:网友
<?php// 外观模式function echoLine($msg) {	echo $msg, '<br/>';}/** * 外观模式是一个十分简单的概念,它只是为一个分层或一个子系统创建一个单一的入口。这会带来很多好处。 * 首先,有助于分离项目中不同的部分。其次,对于客户端开发者来说,访问代码变得简洁,非常方便。另外, * 由于只在一个地方调用子系统,减少了出错的可能性,并因此可以预估子系统修改带来的问题所在。 * Facade类还能使客户端代码避免不正确地使用子系统中复杂的内部方法,从而减少错误的发生。 */class CPU{	public function startup() {		echoLine('cpu startup!');	}		public function shutdown() {		echoLine('cpu shutdown!');	}}class Memory{	public function startup() {		echoLine('memory startup!');	}		public function shutdown() {		echoLine('memory shutdown!');	}}class Disk{	public function startup() {		echoLine('disk startup!');	}		public function shutdown() {		echoLine('disk shutdown!');	}}/** * 如果我们没有 ComputerFacade 类,那么,CPU、Memory、Disk 他们之间将会相互持有实例,产生关系, * 这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了 ComputerFacade * 类,他们之间的依赖关系被放在了 ComputerFacade 类里,这样就起到了解耦的作用。这,就是外观模式!*/class ComputerFacade{	PRivate $cpu;	private $memory;	private $disk;		public function __construct() {		$this->cpu = new CPU();		$this->memory = new Memory();		$this->disk = new Disk();	}		public function startup() {		echoLine('=========== Computer startup! ===========');		$this->disk->startup();		$this->memory->startup();		$this->cpu->startup();	}		public function shutdown() {		$this->cpu->shutdown();		$this->memory->shutdown();		$this->disk->shutdown();		echoLine('=========== Computer shutdown! ===========');	}}// test code$disk = new Disk();$mem = new Memory();$cpu = new CPU();$disk->startup();$mem->startup();$cpu->startup();$cpu->shutdown();$mem->shutdown();$disk->shutdown();// -----------------------------------------------------echo '<hr/>';// 使用外观模式$c = new ComputerFacade();$c->startup();$c->shutdown();
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表