美文网首页iOS-读书笔记
2018-12-06 关于依赖注入的整理

2018-12-06 关于依赖注入的整理

作者: Life淡淡 | 来源:发表于2018-12-06 18:05 被阅读12次

iOS - @property与@synthesize与@dynamic

https://www.jianshu.com/p/0695ecbe9e06

最近在看关于依赖注入这一部分的东西。整理一下

iOS项目依赖注入简介 :https://www.cnblogs.com/itsApe/p/5779143.html

依赖注入 最大的特点就是:

    帮助我们开发出松散耦合(loose coupled)、可维护、可测试的代码和程序。

    这条原则的做法是大家熟知的面向接口,或者说是面向抽象编程。

    主要介绍iOS中的两大框架Objection 和 Typhoon 。

    在 Android上比较流行的有 RoboGuice 和 Dagger 等

什么是依赖注入(Dependency Injection)?

    依赖注入(Dependency Injection) 是一个将行为从依赖中分离的技术

    简单地说,它允许开发者定义一个方法函数依赖于外部其他各种交互,而不需要编码如何获得这些外部交互的实例。

    这样就在各种组件之间解耦,从而获得干净的代码

    相比依赖的硬编码, 一个组件只有在运行时才调用其所需要的其他组件

    因此在代码运行时,通过特定的框架或容器,将其所需要的其他依赖组件进行注入,主动推入。

依赖注入是最早Spring和Piconcontainer等提出,如今已经是一个缺省主流模式,并扩展到前端如Angular.js等等。

1. 依赖

    如果在 Class A中,有 Class B的实例,则称 Class A对 Class B 有一个依赖

    

例子代码

仔细看这段代码我们会发现存在一些问题

    (1). 如果现在要改变 ViewControllerB 生成方式,如需要用initWithOrderid:(NSString * orderid)初始化 vc,需要修改 ViewControllerA 代码

    (2). 如果想测试不同 ViewControllerB 对象对 ViewControllerA 的影响很困难,因为 ViewControllerB 的初始化被写死在了ViewControllerA` 的构造函数中

    (3). 如果[[ViewControllerB alloc] init]过程非常缓慢,单测时我们希望用已经初始化好的 ViewControllerB 对象 Mock 掉这个过程也很困难

2. 依赖注入

    上面将依赖在构造函数中直接初始化是一种 Hard init 方式,弊端在于两个类不够独立,不方便测试。我们还有另外一种 Init 方式,如下:

    

简单注入

相关的第三方

Objection 和 Typhoon. EXTConcreteProtocol

一次高效的依赖注入  运用用

https://www.jianshu.com/p/777ec5edbac9

依赖注入与控制反转

https://laravel-china.org/topics/2104/understanding-dependency-injection-and-inversion-of-control

相关文章

  • 2018-12-06 关于依赖注入的整理

    iOS - @property与@synthesize与@dynamic https://www.jianshu....

  • Dagger2基本使用

    Dagger2是一个依赖注入框架,目前由google维护。关于依赖注入是什么可以看依赖注入简介 引入Dagger ...

  • 关于依赖注入

    摘自 Spring In Action 一书,第一章第一节。 DI (dependency injection)并...

  • 关于依赖注入

    之前理解的是通过Spring等依赖注入框架自动帮我们创建对象,并通过解析注解或XML等方式获取预先配置好的依赖关系...

  • 7、angular学习第六天 (依赖注入的理解)

    一、关于依赖注入 关于angular的依赖注入学习。。有种很奇怪的感觉。我在学习过程中竟然对java的Spring...

  • day02 IoC/DI学习

    DI(依赖注入)是Martin Fowler 在2004年提出的关于IoC(控制反转)的解释,依赖注入和控制反转其...

  • 关于laravel依赖注入

    关于laravel依赖注入和IoC容器的个人理解: 关于它的实现方式 我们要的最后结果就是:注入,只要注入就OK ...

  • day03 IoC学习

    依赖注入是Martin Fowler 在2004年提出的关于IoC(控制反转)的解释,依赖注入和控制反转其实就是一...

  • Date-04-IoC学习

    依赖注入是Martin Fowler 在2004年提出的关于IoC(控制反转)的解释,依赖注入和控制反转其实就是一...

  • CPP技巧整理 —— 依赖注入

    设计模式里面有一个很重要的思想,原话可能是“不要依赖于具体,而是要依赖于抽象”。在软件的设计中,这种思想可谓算是指...

网友评论

    本文标题:2018-12-06 关于依赖注入的整理

    本文链接:https://www.haomeiwen.com/subject/laeocqtx.html