Scala中Dependency Injection
来源:互联网 发布:java.util. 无法引入 编辑:程序博客网 时间:2024/06/13 22:35
依赖注入是指 依赖对象的创建,由第三方完成,而不是被依赖对象,我们将这种控制关系的转移,称为依赖注入或者控制反转。
在spring 的ioc 就是经典的案例。通过配置文件和反射机制,将依赖对象的创建交给spring 容器来完成。spring 的ioc 优缺点:
优点: 可插拔
缺点:
(1)生成一个对象的步骤变复杂了
(2)对象生成因为是使用反射编程,在效率上有些损耗
(3)缺少IDE重构操作的支持
scala 的 Dependency Injection 利用scala 的self type 的语法,变得非常优雅.
请参考如下代码
/** * 依赖注入 * 利用scala self type 功能 * Created by zhiwang on 2015/7/19. */trait Logger{ def log(msg:String)}trait Auth{ auth:Logger => //self type def act(msg:String): Unit ={ log(msg) //调用被依赖的对象Logger 的log 方法 }}object DI extends Auth with Logger{ override def log(msg:String): Unit ={ println(msg) }}object Dependency_Injection { def main(args: Array[String]) { DI.log("dependency injection") //DI为静态对象 }}
从上看出,trait Auth 依赖于 trait Logger 对象 ,最后 通过object DI 实现
参考资料
1. 土豆网 第57讲:Scala中Dependency Injection实战详解
2. 百度云盘 第57讲:Scala中Dependency Injection实战详解
另外
欢迎广大Spark爱好者学习交流.也欢迎广大学习爱好者加入
DT大数据梦工厂交流群:462923555
DT大数据微信公众账号:DT_Spark
0 0
- Scala中Dependency Injection
- 57.Scala中Dependency Injection实战详解
- Spark视频之Scala中Dependency Injection实战详解
- Scala深入浅出进阶经典 第57讲:Scala中Dependency Injection实战详解
- 第57讲:Scala中Dependency Injection实战详解学习笔记
- Dependency Injection
- Dependency Injection
- Dependency Injection
- Dependency Injection
- IOC和Dependency Injection
- IOC和Dependency Injection
- IOC vs Dependency Injection
- Dependency Injection pattern
- Dependency injection with Flex
- DI, Dependency Injection
- Spring 3 Dependency injection
- Setter-based dependency injection
- Dependency Injection with Autofac
- HDU3368 Reversi
- Linux进程间通信——使用信号
- Binary Tree Level Order Traversal II
- Kafka入门经典教程
- D3D的绘制函数总结
- Scala中Dependency Injection
- Linux 常用命令总结
- 9.19 搭服务器折腾centos
- Warfire 战火 1.0 开发小记
- Balanced Binary Tree
- Sliding Window Maximum
- android studio的源文件编码和字符串比较
- Path Sum
- Android中的ClassLoader与dex文件加密实现分析