Scala概述(六)合成(3.总结)

面向服务的组件模型(Service-Oriented Component Model

Scala中,类的抽象与合成机制可以被视作面向服务的组件模型的基础。软件组件是一个个有明确定义的,提供特定服务的计算单元。一般而言,一个软件组件并不是完全自含的,也就是说它的实现依赖于其他一系列提供相应服务的组件。

Scala中,软件组件即对应着类和trait,类和trait的具体成员相当于他们获得的服务,抽象成员相当于他们所需要的服务。组件的组合通过混入的方式来实现,从而使得开发者可以通过较小的组件来产生较大的组件。

Scala的基于混入的合成机制通过名称来识别服务,举例而言,一个抽象方法m,可以被任何一个定义了方法m的类C来实现,只需要将类C进行混入即可。Scala的组件合成机制通过这种方式将需要实现的服务与服务的提供者自动结合起来,再加上“类的具体成员总是覆盖抽象成员”这一规则,Scala就形成了一套递归的、插件式的组件机制,使得组件服务不需要显式进行组装。

上述机制可以简化大型的、存在大量递归依赖关系的组件之间的集成,并且能够有效保证(性能方面的)可扩展性,因为服务与调用者之间的结合是依靠编译器来推断的。这一机制与传统的黑盒式组件相比,最大好处是每个组件都是可扩展的实体:通过集成、重载而实现进化,并且可以对已有组件增加新服务或升级现有服务。总体来说,这些特性有效地支持了一种平滑的、渐进式的软件演进过程。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值