首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scala中的“内置依赖注入”

scala中的“内置依赖注入”
EN

Stack Overflow用户
提问于 2014-07-27 12:54:18
回答 1查看 708关注 0票数 1

嗨,下面的帖子说scala中有“内置的依赖注入”

“作为一名Scala和Java开发人员,我甚至不太想用Java 8取代Scala作为我下一个项目的主要语言。如果我被迫编写Java,最好是Java 8,但如果我有选择的话,有那么多东西( OP正确地指出)使Scala对我来说很有吸引力,仅仅在Java中添加这个特性对我来说并不意味着什么。、Dart和我相信任何其他现代语言都有Lambdas。我喜欢Scala,因为除了lambdas之外,还有很多其他的事情,所以只做一个评论是不够的。 但是举几个例子(其中一些被OP引用) 所有的东西都是一个表达式,用于理解(尤其是使用多个期货,用漂亮的语法解决死亡的回调三角形-- IMHO)、隐式转换、案例类、模式匹配、元组,所有的东西都已经正确实现了等于和哈希码(所以我可以将一个元组,甚至数组作为映射中的一个键),字符串内插,多行字符串,默认参数,命名参数,内置于依赖注入,在我所知道的任何语言中都是最复杂但最强大的类型系统,类型推断(不像Haskell那么好,但比Java中不存在的系统好)。事实上,我总是从一组“一元”行为中得到正确的类型,这要归功于一些臭名昭著的事情,比如CanBuildFrom (纯粹是天才)。让我们不要忘记传递名称参数和构造DSL的能力。提取器(通过模式匹配)。还有更多。 我认为Scala是存在的,至少对于Scala开发人员来说,我100%肯定您不会找到一个Scala开发人员会说:"Java 8有lambdas?太好了,再见scala!“我能想到的唯一原因是编译时间和二进制兼容性。如果我们忽略这两者,我所能说的就是这证明了Scala是如何朝着正确的方向发展的(因为Java 8 lambda和默认的接口方法和蒸气受到了如此明显的影响) 不过,我确实希望Scala能够提高Java 8的互操作性,例如以同样的方式支持功能接口。并向Java 8集合添加新的隐式转换,并利用JVM中的改进。 一旦我找到一种语言,让我知道Scala所做的和做得更好,我就会替换Scala。到目前为止,我还没有找到这样一种语言(检查了Haskell、Clojure、Go、Kotlin、锡兰、Dart、TypeScript、Rust、Julia、D和Nimrod、Ruby、JavaScript和C#,其中一些语言非常有希望,但由于我需要一种JVM语言,最好是静态类型的语言,所以很快就缩小了选择范围) Java 8到目前为止还没有接近,对不起。我很高兴Java开发人员能够获得使用它的“许可”(在企业中可能比Scala更容易采用),但这不是Scala商店考虑搬回Java的原因。“[1]

built in dependency injection in scala到底是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-27 13:34:25

这不是一个离散的语言特性。我认为作者指的是Scala的特性集具有足够的灵活性,能够支持许多可以用来完成DI的技术:

  • 蛋糕图案,建立在特征系统之上
  • “读者报”,建立在高级类型之上。
  • 直奔,基于功能技术
  • 使用隐式类参数,建立在Scala的概念基础上
  • 在我自己的项目中,我们通过显式地要求类构造函数中的函数值来实现DI。

这种多样性是Scala的象征。该语言旨在实现许多非常强大的概念,大多是正交的,从而产生了多种有效的方法来解决许多问题。作为Scala程序员所面临的挑战是理解这种广度,然后为您的项目做出明智的选择。很多时候,这种选择取决于内部使用什么范例来实现组件。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24981162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档