控制反轉與以來注入

2021-07-12 00:09:50 字數 1190 閱讀 5386

控制反轉

簡單的一段**如下:

<?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中有函式指標變數,把它的值賦值...