一、关于依赖注入
关于angular的依赖注入学习。。有种很奇怪的感觉。我在学习过程中竟然对java的Spring依赖注入有了些体会。并且通过对spring的理解类比到angular对我的学习帮助很大。但是讲到根本上。还是一个对于面向对象的理解。
在这里不得不记录下我的最终体会。
如何解决一个难题?
不论我们在做什么样的功能,什么样的业务如果遇到了难点。当时没有思路或者思绪混乱的情况下。应该退回到问题的原点。抛开你当前的代码思路的束缚。从新回到面向对象的思维方式。从新思考对象的业务职责。相信问题总是可以解决的,并且问题也不应该是没有办法去解决的。无论这个办法是通过我们的技术手段还是业务上的变通。但不要忘记我们要抓住的仍然是从学习编程第一天就天天念叨的 面向对象。
就是想把上面的这段话裱起来!!哈哈
回到angular的依赖注入。依赖注入的核心思路是IOC。就是控制反转。目的还是解耦。
在一个对象中 手动通过new Object的方式去创建。会直接导致一个严重的耦合。当需要修改这个内部依赖的对象的时候。需要修改所有依赖这个对象的类的创建对象的代码。会产生大量的工作。
解决这个问题的方法就是ioc。
假设 StudentService TeacherService ClassroojmService 中都需要Student Teacher Classroom 三个类的实例。
传统方式 需要在StudentService TeacherService ClassroojmService的实例中通过
//忽略学生的属性和方法
Student student = new Student();
//忽略老师的属性和方法
Teacher teacher = new Teacher();
//忽略教室的属性和方法
Classroom classroom = new Classroom();
这样 问题就稍稍的可以看出来了。
如果这时候不需要student 而是需要子类 初中生JuniorMiddleSchoolStudent
那带来的问题就是需要修改每个service的new 方法
如果时通过依赖注入的方式。外面只需要修改提供器中的类型就可以。在service中依赖这个类型的对象。这样的解耦方式。有利于我们后面开发的维护。