批改状态:合格
老师批语:简单的设计 模式还是要知道一些的
-注入到普通方法
先将类实例化,再将外部对象作为参数传入类方法中
-注入到构造方法
在类实例化时将外部对象传入类中,用构造方法将外部对象在类中共享
<?phpnamespace mvc_demo;// 控制器1// 1. 加载模型类require 'Model.php';// 2. 加载视图require 'View.php';// 3. 创建控制class Controller2{public function index(Model $model, View $view){// 1. 获取数据$data = $model->getData();// 2. 渲染模板/视图return $view->fetch($data);}}// 客户端$model = new Model;$view = new View;// 实例化控制器类$controller = new Controller2;echo $controller->index($model, $view);
<?php<?phpnamespace mvc_demo;// 控制器依赖注入点改到构造方法, 实现对外部依赖对象的共享// 1. 加载模型类require 'Model.php';// 2. 加载视图require 'View.php';// 3. 创建控制class Controller3{// 依赖对象属性private $model;private $view;// 构造方法public function __construct(Model $model, View $view){$this->model = $model;$this->view = $view;}public function index(){// 1. 获取数据$data = $this->model->getData();// 2. 渲染模板/视图return $this->view->fetch($data);}public function index2(){// 1. 获取数据$data = $this->model->getData();// 2. 渲染模板/视图return $this->view->fetch($data);}}// 客户端$model = new Model;$view = new View;// 实例化控制器类$controller = new Controller3($model, $view);echo $controller->index();

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号