[PHP] 项目实践中使用的IOC容器思想

mac2022-06-30  27

1.容器的意思就是一个全局变量,里面存了很多对象,如果要用到某个对象就从里面取,前提就是要先把对象放进去2.控制反转就是把自己的控制权交给别人3.这两个结合就是,把自己的控制权交给别人并且创建的对象放进一个全局变量里4.好处就是可以灵活的修改一个对象的属性,而不需要去修改类本身的代码

项目实践:1.Application对象的resources属性数组就是那个容器2.getResource方法就是控制生成对象的方法,生成一个对象的控制权交给了Application3.这里先简化的规定下,自定义的类必须有createResource静态方法来创建自己这个对象

class Application{ private $resources= array(); public function getResource($class,$params) { if (!isset($this->resources[$class])) { $this->resources[$class] = call_user_func_array(array($class, 'createResource'), $params); } return $this->resources[$class]; } } class User { private $name; private $age; public function __construct($name,$age){ $this->name=$name; $this->age=$age; } public static function createResource($name,$age) { return new self($name,$age); } public function says(){ echo $this->name; } } $app=new Application(); $user=$app->getResource("User",array("taoshihan","1000")); $user->says();

 

转载于:https://www.cnblogs.com/taoshihan/p/11423263.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)