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

完成一個(gè)依賴(lài)注入的小案例

??? 2019-06-05 01:06:55 231
????:<?php class Animal { public function swim() { return '我喜歡游泳'; } public function fly() { return '我喜歡飛'; } public function ru
<?php
class Animal
{
	public function swim()
	{
		return '我喜歡游泳';
	}

	public function fly()
	{
		return '我喜歡飛';
	}

	public function run()
	{
		return '我喜歡跑步';
	}
}


// 類(lèi)內(nèi)部實(shí)例化類(lèi),在類(lèi)中實(shí)例化另一個(gè)類(lèi)這會(huì)讓當(dāng)前類(lèi)與被引用的類(lèi)之間產(chǎn)生高度的依賴(lài)關(guān)系,即高度耦合。這樣操作非常不好
class Fish
{
	public function getInfo()
	{
		$fish = new Animal();
		return '我是魚(yú),生活在水里'.$fish->swim();
	}
}

$fish =  new Fish();
echo $fish->getInfo();
echo '<hr>';



// 利用構(gòu)造函數(shù)實(shí)現(xiàn)依賴(lài)注入,類(lèi)外先實(shí)例化其它類(lèi),然后在new當(dāng)前時(shí)傳入實(shí)例化后的引用類(lèi)做參數(shù)

class Bird
{
	private $bird = null;
	public function __construct(Animal $animal)
	{
		$this->bird=$animal;
	}
	public function getInfo()
	{
		return '我是老鷹,生活在天空'.$this->bird->fly().'<hr>';
	}
}

$animal = new Animal;
$bird = new Bird($animal);
echo $bird->getInfo();



// 利用操作方法(普通函數(shù))實(shí)現(xiàn)依賴(lài)注入,類(lèi)外先實(shí)例化其它類(lèi),然后在new當(dāng)前類(lèi)后調(diào)用操作方法時(shí)傳入實(shí)例化后的引用類(lèi)做參數(shù)

class Hare
{
	public function run(Animal $animal)
	{
		return '我的兔子,生活在野外'.$animal->run();
	}
}

$animal = new Animal;
$hare = new Hare;
echo $hare->run($animal);


引用類(lèi)包含了各種需要用到的方法或不需要的方法,可對(duì)引用類(lèi)進(jìn)行實(shí)例化后的部分方法進(jìn)行訪(fǎng)問(wèn)操作,當(dāng)類(lèi)外部實(shí)例化另個(gè)類(lèi)后再以參數(shù)方式傳入當(dāng)前類(lèi)方法中可免類(lèi)之間產(chǎn)生高度的依賴(lài)關(guān)系

2019-06-05_010607.png

?? ???:查無(wú)此人?? ??:2019-06-05 10:09:33
???? ??:完成的不錯(cuò)。編程有很多設(shè)計(jì)模式,多了解,對(duì)以后工作幫助很大。繼續(xù)加油。

??? ??

?? ??