亲宝软件园·资讯

展开

容器

small-river 人气:1

容器的优点:

1.降低类与类之家的耦合;

2.实现惰性加载

3.便于管理:将两个类通过容器加载,也通过容器来获取对象,类与类之间的关联度大大降低;

<?php
    //容器的概念
    轮胎类
    class Luntai
    {
        public function roll()
        {
            echo '这个轮胎会跑'."<br />";
        }
    }

    汽车类
    class Car
    {
        protected $luntai;

        public function __construct($luntai)
        {
            $this->luntai = $luntai;
        }

        public function run()
        {
            $this->luntai->roll();
            echo '吃着火锅开着车!'."<br />";
        }
    }

    容器类
    class Container
    {
        //静态属性为空数组
        public static $register=array();

        //用静态成员接收闭包
        public static function bind($name,Closure $closure)
        {
            self::$register[$name] = $closure;
        }

        //解析静态成员,获取闭包返回对象
        public static function make($name)
        {
            $closure = self::$register[$name];
            return $closure();//返回闭包
        }
    }

    //容器负责存放闭包方法,以及解析类
    Container::bind('luntai',function(){
        return new Luntai();
    });

    Container::bind('bmw',function(){
        return new Car(Container::make('luntai'));
    });

    Container::make('bmw')->run();

加载全部内容

相关教程
猜你喜欢
用户评论