- 0
- 0
- 约3.26千字
- 约 16页
- 2026-02-10 发布于北京
- 举报
swoole混合实战之秒
杀前传
快帅酷
刻意训练自己的技术套路
讲师:沈逸
swoole混合实战之
秒杀前传
快帅酷
刻意训练自己的技术套路
讲师:沈逸
穿插知识点:理解依赖注入/控制反转
穿插知识点:理解依赖注入/控制反转
先看一段古老却常见的封装代码
classMyDB{private$db;//这里可能是pdo可能是别的,
仅仅为了演示publicfunctionconstruct($connInfo){//
略}publicfunctionqueryForRows($sql){return[
__
userid=101,username=shenyi];}}class
MyUser{private$mydb;
先看一段古老却常见的封装代码
classMyDB{
private$db;//这里可能是pdo可能是别的,仅仅为了演示
publicfunctionconstruct($connInfo)
{
//略
}
publicfunctionqueryForRows($sql){
return[user_id=101,user_name=shenyi];
}
}
class
MyUser{privat
e$mydb;
publicfunctionconstruct($
dsn){$this‑mydb==new
MyDB($dsn);
publicfunctionconstruct($dsn)
{
$this-mydb=newMyDB($dsn);
调用
$user=newMyUser(mysql:host=localhost;);
_
vardump($user‑getAllUsers());
一个很明显的问题在于:
我们将MyUser和数据库这两个概念混为一谈,变成一个。
当数据库密码或其他信息改变时,我们就需要修改MyUser的构造。函数。
造成模块耦合。
事实上,MyUser应该专注于业务处理,Db应该是独立的。
调用
$user=newMyUser(mysql:host=localhost;);
var_dump($user-getAllUsers());
一个很明显问题在于:
我们把MyUser和数据库两个概念混淆在了一起,变成了一个。
当数据库密码或其他信息变掉了,我们就要修改MyUser的构造函数。
造成模块耦合
事实上,MyUser就应该专注于业务处理,Db就应该是独立的
正确做法
MyDB
向MyUser注入
MyDB的实例
MyUser
正确做法
向注入
的实例
代码
$db=newMyDB(mysql:host=l
ocalhost;);$user
您可能关注的文档
- 天窗连接器端视图及电路详细信息说明.pdf
- 复旦高级微观济学问题集:技术与成本小化.pdf
- 机械能守恒定律表达式选取例谈.pdf
- 厦门登山协会入会指南2023.pdf
- 初中英语下册Unit 5 Topic 2 Section B:情感表达与对话练习.pdf
- 汽车电气与电子系统故障诊断与修复动画脚本.pdf
- 汽车离心点火提前调节器故障诊断与修复动画脚本.pptx
- 2024年九年级3月语文学业测评参及评分.pdf
- 2018年全国尿沉渣形态学室间质量评价报告.pdf
- 杯型口罩机生产线后段焊耳带组件清单.pdf
- 初中九年级英语Unit 13环境保护主题听说整合教学设计.docx
- 85分式方程及其解法课件人教版数学八年级上册.pptx
- 基于核心素养的博物馆主题说明文写作教学设计与实施——以九年级英语为例.docx
- 53一次函数的意义第课时课件浙教版八年级数学上册.pptx
- 大单元视角下“人民民主政权的巩固”与历史关键能力进阶教学设计——以初中历史中考复习课为例.docx
- 五年级数学下册典型例题解析人教版期末重点攻克.pptx
- 小学四年级信息技术《智启信息时代:查找网上信息的基石》教学设计及反思.docx
- 大疆域·大人口·大战略:中国国家空间认知的初步建构.docx
- 人教版(一年级起点)小学英语四年级上册Revision 1 Lesson 2教学设计.docx
- 大单元结构化复习:旧民主主义革命时期(18401919)的内忧外患与救亡图存.docx
原创力文档

文档评论(0)