inte***cesupermoduleinte***ce
class
xpower
implements
supermoduleinte***ce
}/**
* 終極炸彈 (就這麼俗)
*/class
ultrabomb
implements
supermoduleinte***ce
}class
superman
}class
container
else
}public function
make($abstract, $parameters = )
array_unshift($parameters, $this);
return
call_user_func_array($this->binds[$abstract], $parameters);
}}//
建立乙個容器(後面稱作超級工廠)
$container = new
container;
// 向該 超級工廠新增超人的生產指令碼
$container->bind('superman', function($container, $modulename) ;
return new
superman($container->make($modulename));
}); //
向該 超級工廠新增超能力模組的生產指令碼
$container->bind('xpower', function($container) ;
return new
xpower;
});同上
$container->bind('ultrabomb', function($container) ;
return new
ultrabomb;
});// ******************
華麗麗的分割線
**********************
// 開始啟動生產
//相當於呼叫
$this->binds['superman']($container->make($modulename))
$superman_1 = $container->make('superman', array('xpower'));
$superman_2 = $container->make('superman', ['ultrabomb']);
print_r($superman_1);
//print_r($superman_2);
$superman_1->module->activate();
簡單實現spring中Ioc容器
spring的ioc容器是通過工廠模式 反射機制完成的。簡單來說反射機制就是我們可以通過類的名字來生成物件。比如比較常見的用法 person p person class.forname chinese newinstance 這樣子,我們可以直接通過chinese這個類的名字來構造這個物件。下面我...
自己寫個簡單的IOC容器
第一次看spring的時候,會感覺ioc好神奇阿。不需要設定值,用的時候取就可以了。那麼它是怎麼實現的呢?核心就是ioc容器。那麼它有多神秘呢額?其實很簡單,就是讀取配置檔案,生成對應的bean,再將值賦給那個bean就行了,取的時候直接用那個getbean方法去取就行了。廢話少說,我們自己來寫乙個...
IOC容器簡介
了解到spring框架的兩大核心模組 ioc容器和aop 原始碼分析首先從ioc容器開始,之後再來看aop 這一篇我們先來了解一下什麼是ioc容器,以及ioc容器的功能 1 正常開發模式 非依賴反轉 正常的,合作物件的引用或依賴關係的管理由具體物件來完成 持有被引用的物件 這導致了 高度耦合並且降低...