控制反轉
簡單的一段**如下:
<?php
class person
}class mcdonald
}$person = new person();
$person->eat();
如果我也會在
kentucky 吃飯,或者在pizzahut吃飯,那麼我們或許可以寫成下面的形式:
<?php
class person
public function eat()
}inte***ce restaurant
class mcdonald implements restaurant
}class kentucky implements restaurant
}$person = new person(new kentucky());
$person->eat();
$person = new person(new mcdonald());
$person->eat();
通過建構函式傳遞restaurant的依賴,這個過程就是依賴注入。
我們新增wear函式。
<?php
class person
public function eat()
public function wear()
}inte***ce restaurant
class mcdonald implements restaurant
}class kentucky implements restaurant
}inte***ce shoe
class nike implements shoe
}class addidas implements shoe
}$restaurant = new kentucky();
$shoe = new addidas();
$person = new person($restaurant, $shoe);
$person->eat();
$person->wear();
在使用的過程中,我們一次注入了$restaurant和$shoe。
kentucky
控制反轉 依賴注入和控制反轉
依賴注入 di 和控制反轉 ioc 基本是乙個意思,因為說起來誰都離不開誰。簡單來說,a依賴b,但a不控制b的建立和銷毀,僅使用b,那麼b的控制權交給a之外處理,這叫控制反轉 ioc 而a要依賴b,必然要使用b的instance,那麼 通過a的介面,把b傳入 通過a的構造,把b傳入 通過設定a的屬性...
依賴注入 控制反轉
控制反轉 inversion of control,縮寫為ioc 是物件導向程式設計中的一種設計原則,可以用來減低計算機 之間的耦合度。其中最常見的方式叫做依賴注入 dependency injection,簡稱di 例子com.itcast.bean package com.itcast.bean...
依賴注入 控制反轉
依賴注入和控制反轉這2個概念差不多。架構整潔之道中的經典講解 普通 中,依賴方向和控制流方向是一致的,即如果函式a中呼叫函式b,那麼a依賴b,a控制b 而控制反轉的 是a和b都依賴c,a控制c,c控制b,在b和c之間的關係就是依賴控制反轉。結構化程式設計中的實現方式 c中有函式指標變數,把它的值賦值...