面向服务的组件模型(Service-Oriented Component Model)
在Scala中,类的抽象与合成机制可以被视作面向服务的组件模型的基础。软件组件是一个个有明确定义的,提供特定服务的计算单元。一般而言,一个软件组件并不是完全自含的,也就是说它的实现依赖于其他一系列提供相应服务的组件。
在Scala中,软件组件即对应着类和trait,类和trait的具体成员相当于他们获得的服务,抽象成员相当于他们所需要的服务。组件的组合通过混入的方式来实现,从而使得开发者可以通过较小的组件来产生较大的组件。
Scala的基于混入的合成机制通过名称来识别服务,举例而言,一个抽象方法m,可以被任何一个定义了方法m的类C来实现,只需要将类C进行混入即可。Scala的组件合成机制通过这种方式将需要实现的服务与服务的提供者自动结合起来,再加上“类的具体成员总是覆盖抽象成员”这一规则,Scala就形成了一套递归的、插件式的组件机制,使得组件服务不需要显式进行组装。
上述机制可以简化大型的、存在大量递归依赖关系的组件之间的集成,并且能够有效保证(性能方面的)可扩展性,因为服务与调用者之间的结合是依靠编译器来推断的。这一机制与传统的黑盒式组件相比,最大好处是每个组件都是可扩展的实体:通过集成、重载而实现进化,并且可以对已有组件增加新服务或升级现有服务。总体来说,这些特性有效地支持了一种平滑的、渐进式的软件演进过程。
分享到:
相关推荐
windows版本 scala-2.12.14.zip & Linux版本 scala-2.12.11.tgz 压缩包.rar
赠送jar包:jackson-module-scala_2.11-2.6.7.1.jar; 赠送原API文档:jackson-module-scala_2.11-2.6.7.1-javadoc.jar; 赠送源代码:jackson-module-scala_2.11-2.6.7.1-sources.jar; 赠送Maven依赖信息文件:...
本资源是scala-2.12.11.tgz 用于linux的安装包,spark2以上需要用scala2.12以上的版本,本软件安全无毒,放心使用。便于大家的使用,可以直接下载使用。
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于...
编程语言scala,windows, scala-2.12.11.zip. 编程语言scala,windows, scala-2.12.11.zip.
Windows版本的Scala安装包:scala-2.13.8.zip
scala-2.11.8.tar.gz
Scala_2.7.6_API.chm.7z。Scala_2.7.6_API.chm.7z。Scala_2.7.6_API.chm.7z。
scala-library-2.10.0.jar scala-library-2.10.0.jar scala-library-2.10.0.jar
赠送jar包:jackson-module-scala_2.12-2.6.7.1.jar; 赠送原API文档:jackson-module-scala_2.12-2.6.7.1-javadoc.jar; 赠送源代码:jackson-module-scala_2.12-2.6.7.1-sources.jar; 赠送Maven依赖信息文件:...
eclipse scala插件,第二部分
scala-2.9.0.1.part3.rarscala-2.9.0.1.part3.rarscala-2.9.0.1.part3.rarscala-2.9.0.1.part3.rarscala-2.9.0.1.part3.rarscala-2.9.0.1.part3.rar
IntellJIDEA Scala插件:scala-intellij-bin-2016.3.9
赠送jar包:jackson-module-scala_2.11-2.6.7.1.jar; 赠送原API文档:jackson-module-scala_2.11-2.6.7.1-javadoc.jar; 赠送源代码:jackson-module-scala_2.11-2.6.7.1-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:jackson-module-scala_2.12-2.6.7.1.jar; 赠送原API文档:jackson-module-scala_2.12-2.6.7.1-javadoc.jar; 赠送源代码:jackson-module-scala_2.12-2.6.7.1-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:scala-reflect-2.12.14.jar; 赠送原API文档:scala-reflect-2.12.14-javadoc.jar; 赠送源代码:scala-reflect-2.12.14-sources.jar; 赠送Maven依赖信息文件:scala-reflect-2.12.14.pom; 包含翻译后...
赠送jar包:scala-reflect-2.12.14.jar; 赠送原API文档:scala-reflect-2.12.14-javadoc.jar; 赠送源代码:scala-reflect-2.12.14-sources.jar; 赠送Maven依赖信息文件:scala-reflect-2.12.14.pom; 包含翻译后...
org.scala-ide.sdt.update-site.zip org.scala-ide.sdt.update-site.zip org.scala-ide.sdt.update-site.zip
Scala(斯嘎拉)这个名字来源于"Scalable Language(可伸缩的语言)", 它是一门基于JVM的多范式编程语言, 通俗的说: Scala是一种运行在JVM上的函数式的面向对象语言. 之所以这样命名, 是因为它的设计目标是: 随着用户的...
maven-scala-plugin-2.9.jar