【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索
摘要: 控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特点。控制反转(IOC)是一种思惟,依附注入(DI)是实施这种思惟的办法。
高层模块不该该依附于底层模块,两个都应当依附抽象。
抽象不该该依附于细节,细节应当依附于抽象。
起首,我们来看一段代码:
初始,我们都应用new 的方法在内部进行,EchoT类严重依附于类A。每当类A变更时,EchoT类也得进行变更。
这个时刻,会出现一个问题:
我们优化一下代码
- class EchoT {
- protected $t;
- public function __construct($t) //构造器注入由构造器注入到个中
- {
- $this->t = $t;
- }
可以看到,如许做的话。很大年夜法度榜样上,我们对法度榜样进行懂灯揭捉?。类A无论你若何更改,EchoT类是不须要更改的。不再依附于A。然则新问题又来了,我们如今只有A,万一来了B,来了CDEFG怎么办。
面向接口
- interface T{
- public function echo();
- }
- class A{
- public function echo()
- {
- echo 'A'.PHP_EOL;
- }
- }
- class B implements T{
- public function echo()
- {
- echo 'B'.PHP_EOL;
- }
- }
- class EchoT {
- protected $t;
- public function __construct(T $t) //构造器注入由构造器注入到个中
- {
- $this->t = $t;
- }
- public function echo(){
- $this->t->echo();
- }
- }
工厂
- function getT($str) {
- if(class_exists($str)){
推荐阅读
【51CTO晃荡】8.26 带你深度懂得清华大年夜学、搜狗基于算法的IT运维实践与摸索 本指南将向你介绍若何应用 Authconfig 在敕令行中将无图形界面的 CentOS 7 办事器集成到 Samba4 AD 域控制>>>详细阅读
本文标题:PHP如何实现依赖注入
地址:http://www.17bianji.com/lsqh/36755.html
1/2 1