容器
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();
加载全部内容