
批改狀態(tài):合格
老師批語(yǔ):簡(jiǎn)單的設(shè)計(jì) 模式還是要知道一些的
-注入到普通方法
先將類實(shí)例化,再將外部對(duì)象作為參數(shù)傳入類方法中
-注入到構(gòu)造方法
在類實(shí)例化時(shí)將外部對(duì)象傳入類中,用構(gòu)造方法將外部對(duì)象在類中共享
<?php
namespace mvc_demo;
// 控制器1
// 1. 加載模型類
require 'Model.php';
// 2. 加載視圖
require 'View.php';
// 3. 創(chuàng)建控制
class Controller2
{
public function index(Model $model, View $view)
{
// 1. 獲取數(shù)據(jù)
$data = $model->getData();
// 2. 渲染模板/視圖
return $view->fetch($data);
}
}
// 客戶端
$model = new Model;
$view = new View;
// 實(shí)例化控制器類
$controller = new Controller2;
echo $controller->index($model, $view);
<?php
<?php
namespace mvc_demo;
// 控制器依賴注入點(diǎn)改到構(gòu)造方法, 實(shí)現(xiàn)對(duì)外部依賴對(duì)象的共享
// 1. 加載模型類
require 'Model.php';
// 2. 加載視圖
require 'View.php';
// 3. 創(chuàng)建控制
class Controller3
{
// 依賴對(duì)象屬性
private $model;
private $view;
// 構(gòu)造方法
public function __construct(Model $model, View $view)
{
$this->model = $model;
$this->view = $view;
}
public function index()
{
// 1. 獲取數(shù)據(jù)
$data = $this->model->getData();
// 2. 渲染模板/視圖
return $this->view->fetch($data);
}
public function index2()
{
// 1. 獲取數(shù)據(jù)
$data = $this->model->getData();
// 2. 渲染模板/視圖
return $this->view->fetch($data);
}
}
// 客戶端
$model = new Model;
$view = new View;
// 實(shí)例化控制器類
$controller = new Controller3($model, $view);
echo $controller->index();
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)