abstrait:一、示例代碼<?phpclass Girl{ public function work() { return '會(huì)做飯'; } public function hobby() {
一、示例代碼
<?php
class Girl
{
public function work()
{
return '會(huì)做飯';
}
public function hobby()
{
return '愛購(gòu)物';
}
}
class Boy
{
public function getInfo()
{
$girl = new Girl;
return '我的女朋友' . $girl->work();
}
}
$boy = new Boy;
echo $boy->getInfo();
echo '<hr>';
//依賴注入:將當(dāng)前依賴的對(duì)象,以參數(shù)方式注入到當(dāng)前類中,簡(jiǎn)稱:依賴注入
//1.構(gòu)造方法實(shí)現(xiàn)依賴注入
class Boy1
{
private $girl = null;
public function __construct(Girl $girl)
{
$this->girl = $girl;
}
public function getInfo()
{
return '我的女朋友' . $this->girl->work();
}
}
$girl = new Girl;
$boy1 = new Boy1($girl);
echo $boy1->getInfo();
echo '<hr>';
//2.普通方法來實(shí)現(xiàn)依賴注入
class Boy2
{
public function buy(Girl $girl)
{
return '我的女朋友'.$girl->hobby();
}
}
$girl=new Girl;
$boy2=new Boy2;
echo $boy2->buy($girl);
二、運(yùn)行結(jié)果
三、優(yōu)勢(shì)
傳統(tǒng)的代碼,每個(gè)對(duì)象負(fù)責(zé)管理與自己需要依賴的對(duì)象,導(dǎo)致如果需要切換依賴對(duì)象的實(shí)現(xiàn)類時(shí),需要修改多處地方。
同時(shí),過度耦合也使得對(duì)象難以進(jìn)行單元測(cè)試。依賴注入把對(duì)象的創(chuàng)造交給外部去管理,很好的解決了代碼緊耦合(tight couple)的問題,是一種讓代碼實(shí)現(xiàn)松耦合(loose couple)的機(jī)制。
3.松耦合讓代碼更具靈活性,能更好地應(yīng)對(duì)需求變動(dòng),以及方便單元測(cè)試。
Professeur correcteur:查無此人Temps de correction:2019-05-10 14:19:29
Résumé du professeur:完成的不錯(cuò)。編程有很多編程方式,要多了解。繼續(xù)加油。