什么是依赖注入模式及使用依赖注入的好处
依赖注入:Dependency Injection 简称DI
var product = new Product();
createShipment(product);
我们new一个对象实例,然后当做参数传递给createShipment这个方法,这种也可以成为注入。
var product = new MockProduct();
createShipment(product);
当然,我们也可以很方便的用Product的子类进行替换
var product = new Product();
var shipCompany = new ShipCompany();
var address = new Address();
var oder = new Order();
order.setAddress(address);
createShipment(product,shipCompany,order);
但是,如果我们需要大量的实例对象时,就需要大量创建使用实例化对象代码,如果有种方式可以替我们实例对象,以及其依赖的对象。我们就可以精简代码,我们就写一个createShipment()
方法就可以了,这就是依赖注入模式要解决的问题。
控制反转:Inversion of Control 简称IOC
它是和依赖注入对应的概念,意思是将依赖的控制权由代码的内部转换为代码的外部。
控制反转注重效果,依赖注入注重如何实现。
Angular实现控制反转的手段就是依赖注入。
使用依赖注入模式的好处:
1.松耦合,可重用性
2.提高可测试性
加入登录的后台服务还没开发好,我们可以先编码一个假的登录MockLoginService注入到LoginComponent中,等真正服务器代码开发好,再把真正的RealLoginService注入。