亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Faade的驗證登入

Original 2019-06-14 12:06:37 384
abstract:<?php  /**  * 外觀模式:facade,也叫門面模式  * 1.用一句來說:就是將操作進行封裝,對外提供一個統(tǒng)一的接口  * 2.因為操作可能分布在多個類中,而剛才學過的容器恰好可以將不同的類與實現封裝起來  * 3.所以外觀模式與依賴容器是黃金搭檔,經常會放在一起使用  */
<?php 
/**
 * 外觀模式:facade,也叫門面模式
 * 1.用一句來說:就是將操作進行封裝,對外提供一個統(tǒng)一的接口
 * 2.因為操作可能分布在多個類中,而剛才學過的容器恰好可以將不同的類與實現封裝起來
 * 3.所以外觀模式與依賴容器是黃金搭檔,經常會放在一起使用
 */

/**
 * 用戶登錄的操作涉及三個操作
 * 1.連接數據庫
 * 2.用戶數據驗證
 * 3.輸出提示信息
 */

require 'container.php';

//創(chuàng)建Facade類,實現以上三個功能
class Facade
{
	//連接數據庫
	public static function connect(Container $container)
	{
		return $container->make('db')->connect();
	}

	//用戶數據驗證
	public static function check(Container $container)
	{
		return $container->make('validate')->check();
	}

	//輸出提示信息
	public static function display(Container $container)
	{
		return $container->make('view')->display();
	}
}



//客戶端調用
echo Facade::connect($container);
echo Facade::check($container);
echo Facade::display($container);


//可以在外觀模型中使用初始化方法事先注入容器對象,來簡化客戶端調用

container代碼

<?php 

//數據庫操作類
class Db
{
	//數據庫連接
	public function connect()
	{
		return '數據庫連接成功<br>';
	}
}

//數據驗證類
class Validate
{
	//數據驗證
	public function check()
	{
		return '數據驗證成功<br>';
	}
}

//視圖圖
class View
{
	//內容輸出
	public function display()
	{
		return '用戶登錄成功';
	}
}

/******************************************************************************/

//一.創(chuàng)建容器類
class Container
{
	//創(chuàng)建屬性,用空數組初始化,該屬性用來保存類與類的實例化方法
	public $instance = [];

	//初始化實例數組,將需要實例化的類,與實例化的方法進行綁定
	public function bind($abstract, Closure $process)
	{
		//鍵名為類名,值為實例化的方法
		$this->instance[$abstract] = $process;
	}

	//創(chuàng)建類實例
	public function make($abstract, $params=[])
	{
		return call_user_func_array($this->instance[$abstract],[]);
	}

}
//二、服務綁定: 將類實例注冊到容器中
$container = new Container(); 
//將Db類綁定到容器中
$container->bind('db', function(){
	return new Db();
});
//將Validate類實例綁定到容器中
$container->bind('validate', function(){
	return new Validate();
});

//將View類實例綁定到容器中
$container->bind('view', function(){
	return new View();
});


Correcting teacher:查無此人Correction time:2019-06-14 14:21:46
Teacher's summary:完成的不錯?;A上php已經入門了,以后多練習實戰(zhàn)項目。繼續(xù)加油。

Release Notes

Popular Entries