abstract:bind[$abstract] = $process; } public function make($abstract, $params=[]){ return call_user_func_array($this->bind[$abstract], []); } } class Facade{ protected static $container = null; public static function initialize(Container $container) { self::$container = $container; } public static function connect(){ return self::$container->make('DB')->connect(); } public static function check(){ return self::$container->make('Validate')->check(); } public static function success(){ return self::$container->make('Login')->success(); } } $container = new Container(); $container->bind('DB', function(){ return new DB(); }); $container->bind('Validate', function(){ return new Validate(); }); $container->bind('Login', function(){ return new Login(); }); Facade::initialize($container); echo Facade::connect(); echo '
'; echo Facade::check(); echo '
'; echo Facade::success(); // echo $container->make('DB')->connect(); // echo '
'; // echo $container->make('Validate')->check(); // echo '
'; // echo $container->make('Login')->success();案例描述:
先用容器对登陆操作进行解耦
再通过Facade门面对操作进一步简化。让用户知其然不知其所以然。
Correcting teacher:查无此人Correction time:2019-03-18 09:42:22
Teacher's summary:不错,不错,继续加油。功能比较难理解,还需要反复练习的。