依赖注入的小案例

Original 2019-05-25 11:51:47 204
abstract:<?php //数据库操作类 class Db {    //数据库连接    public function connect()    {       return '数据库连接成功<br
<?php
//数据库操作类
class Db
{
   //数据库连接
   public function connect()
   {
      return '数据库连接成功<br>';
   }
}

//数据验证类
class Validate
{
   //数据验证
   public function check()
   {
      return '数据验证成功<br>';
   }
}

//视图图
class View
{
   //内容输出
   public function display()
   {
      return '用户登录成功';
   }
}
class Container
{
    protected $instance = [];
    public function bind ($abstract,Closure $process){
        $this->instance[$abstract] =$process;
    }
    public function make($abstract,$params=[]){
        return call_user_func_array($this->instance[$abstract],[]);
    }
}
$container = new Container();
$container->bind('validate',function(){
    return new Vlidate();
})
$container->bind('view', function(){
   return new View();
});

class User
{
    public funtion login(Container $containner)
    {
        echo $container->make('db')->connect();
        echo $container->make('validate')->connect();
        echo $container->make('view')->connect();
    }
}

依赖可以解耦;

Correcting teacher:天蓬老师Correction time:2019-05-25 17:22:04
Teacher's summary:能自己想一个, 与教学案例类似的案例吗?

Release Notes

Popular Entries