Swoole实战课程:构建HTTP服务器与秒杀系统.pptxVIP

  • 0
  • 0
  • 约小于1千字
  • 约 7页
  • 2026-02-10 发布于北京
  • 举报

Swoole实战课程:构建HTTP服务器与秒杀系统.pptx

快帅酷swoole混合实战之秒杀前传刻意训练自己的技术套路讲师:沈逸

穿插知识点:理解依赖注入/控制反转

先看一段古老却常见的封装代码classMyDB{private$db;//这里可能是pdo可能是别的,仅仅为了演示publicfunction__construct($connInfo){//略}publicfunctionqueryForRows($sql){return[user_id=101,user_name=shenyi];}}classMyUser{private$mydb;publicfunction__construct($dsn){$this-mydb=newMyDB($dsn);}publicfunctiongetAllUsers():array{return$this-mydb-queryForRows(select*fromusers);}}

调用$user=newMyUser(mysql:host=localhost;);var_dump($user-getAllUsers());一个很明显问题在于:我们把MyUser和数据库两个概念混淆在了一起,变成了一个。当数据库密码或其他信息变掉了,我们就要修改MyUser的构造函数。造成模块耦合事实上,MyUser就应该专注于业务处理,Db就应该是独立的

正确做法MyUserMyDB向MyUser注入MyDB的实例

代码$db=newMyDB(mysql:host=localhost;);$user=newMyUser($db);var_dump($user-getAllUsers());这里就实现了最基本的1、依赖注入DependencyInjection(DI)2、同时MyUser不再主动去newMyDB。变成被动等待”依赖”注入,这也叫控制反转InversionofControl(IoC)

欢迎加入我们的QQ群程序员在囧途教育QQ群606976586

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档