TOP

[PHP] 项目实践中使用的IOC容器思想
2019-09-03 03:46:21 】 浏览:32
Tags:PHP 项目 实践 使用 IOC 容器 思想

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

项目实践:
1.Application对象的resources属性数组就是那个容器
2.getResource方法就是控制生成对象的方法,生成一个对象的控制权交给了Application
3.这里先简化的规定下,自定义的类必须有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();

 


[PHP] 项目实践中使用的IOC容器思想 https://www.cppentry.com/bencandy.php?fid=85&id=249798

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇PHP获取今日、昨日、本周、上周、.. 下一篇[PHP] 项目实践中的自动加载实现

kafka-
kafka   Partit
解决android studio
Kafka史上最详细原理
Error while fetchin
【Kafka】安装与快速
    &
flume读取日志数据写
Authentication plug
Flume 自定义source
flume   三大核
ICC副本>>>
愚公移山  
Hbase架构   Hb
5 hbase-shell + &
Hbase   MapRed
MetaException(messa
Exception in thread
HIVE metastore Dupl
-->