【springboot】什么是依赖注入
发布日期:2021-05-09 17:21:33 浏览次数:21 分类:精选文章

本文共 1545 字,大约阅读时间需要 5 分钟。

控制反转与依赖注入:小明的手机之旅

第一章:小明的手机

小明是一个热爱生活的程序员,他有一部神奇的iPhone6,依赖它完成每天的工作和娱乐。为了实现“知乎、玩王者、抢红包”的目标,他编写了一个简单的PHP类。

class Ming extends Person {
private $_name;
private $_age;
public function __construct() {
$this->_name = '小明';
$this->_age = 26;
}
function read() {
(new iPhone6())->read($this->_name); // 逛知乎
}
function play() {
(new iPhone6())->play($this->_name); // 玩王者农药
}
function grab() {
(new iPhone6())->grab($this->_name); // 抢红包
}
}

第二章:小明的忧伤

随着时间的推移,小明的iPhone6越来越慢,电池寿命也变差了。他不得不换手机,但发现自己过度依赖iPhone6,改造过程痛苦又低效。

为了减少对iPhone6的依赖,小明决定改用依赖注入的方式管理手机。但他仍然难以摆脱对手机的控制欲。

第三章:造物主的智慧

为了帮助小明摆脱对手机的控制,造物主提出“控制反转”的概念。他将手机的控制权交给了一个第三方容器,通过依赖注入实现解耦。

class Ming extends Person {
private $_name;
private $_phone;
public function __construct($phone) {
$this->_name = '小明';
$this->_age = 26;
$this->_phone = $phone;
echo "小明起床了\n";
}
function read() {
$this->_phone->read($this->_name); // 逛知乎
}
function play() {
$this->_phone->play($this->_name); // 玩王者农药
}
function grab() {
$this->_phone->grab($this->_name); // 抢红包
}
}

第四章:小明的感悟

经过改造,小明的生活变得简单了。他不再控制手机,而是让造物主来管理手机。每天换手机,享受便利的同时,也学会了如何更好地设计软件系统。

第五章:小明的困惑

小明在一次阅读中遇到了一个技术文章,里面提到“依赖注入”和“控制反转”。他觉得自己对这些概念还不够理解,决定深入研究。

通过阅读和实践,小明逐渐理解了依赖注入的真正含义。他开始用_IOC容器管理手机,实现了真正的控制反转。

术语解释

  • 控制反转(IOC):将对象的控制权从被控制对象转移到第三方容器。
  • 依赖注入:通过容器将依赖关系注入到对象中,实现松耦合设计。

通过小明的故事,我们可以看到,软件设计中的依赖管理至关重要。通过控制反转和依赖注入,我们可以减少耦合,提高系统的可维护性和扩展性。

上一篇:【java】Java bean 是个什么概念?
下一篇:【springBoot】controller,service,dao,mapper,model层的作用

发表评论

最新留言

很好
[***.229.124.182]2025年04月18日 06时53分37秒