abstrak:<?php //使用依賴注入實現 class Validate{ public function check(){ return '數據驗證成功 <br>';
<?php //使用依賴注入實現 class Validate{ public function check(){ return '數據驗證成功 <br>'; } } class Db{ public function connect(){ return '數據庫連接成功 <br>'; } } class View{ public function display(){ return '用戶登錄成功 <br>'; } } class User{ //創(chuàng)建接收器 protected $db = null; protected $validate = null; protected $view = null; public function login(DB $db,Validate $validate,View $view){ // $db = new Db(); echo $db->connect(); // $validate = new Validate(); echo $validate->check(); // $view = new View(); echo $view->display(); } } //客戶端實例化 $db = new Db(); $validate = new Validate(); $view = new View(); $user = new User(); echo '<h1>依賴注入實現解耦</h1>'; echo $user->login($db,$validate,$view); ?>
<?php //使用門面模式 require 'container.php'; class Facade{ protected static $container = null; public static function initialize(Container $container){ static::$container = $container; } public static function connect(){ return static::$container->make('db')->connect(); } public static function check(){ return static::$container->make('validate')->check(); } public static function display(){ return static::$container->make('view')->display(); } } //客戶端調用 Facade::initialize($container); echo Facade::connect($container); echo Facade::check($container); echo Facade::display($container); ?>
Guru membetulkan:天蓬老師Masa pembetulan:2019-05-09 14:02:40
Rumusan guru:關于設計模式, 說三天三夜也說不完....
這些模式, 都是解決實際問題的通用方法, 其實就是套路, 只有多用才能記住