`
wbj0110
  • 浏览: 1604237 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

scala akka 修炼之路5(scala特质应用场景分析)

    博客分类:
  • Akka
阅读更多

cala中特质定义:包含一些字段,行为(方法/函数/动作)和一些未实现的功能接口的集合,可以方便的实现扩展或混入到已有类或抽象类中。

     scala中特质(trait)是一个很有用的特性,在程序设计中可以 更好的抽象现实,使程序更关注各自功能和更好的将程序拆分成多个特质模块,使程序具有更强的扩展性。熟悉java的同学,可以将特质理解为抽象类,但是scala中可以在一个类中同时混入多个特质(使用extends 或with),而java中一个类只能继承一个抽象类,如果要实现多个抽象类就必需使用多继承。scala中很多基础类型功能扩展都使用了特质的特性,例如,基础类型中的布尔操作和比较接口功能扩展都是在Ordered[T]中实现,迭代功能的操作主要在TraversableOnce[+A],GenTraversableOnce[A]中实现,TraversableOnce中混入了GenTraversableOnce特质。小象认为更多使用特质可以更好的站在抽象的层面设计程序和系统框架。

    scala中使用Ordered特质实现基本类型的<,><=,>=功能

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. trait Ordered[A] extends Any with java.lang.Comparable[A] {  
  2.  def compare(that: A): Int  
  3.  def <  (that: A): Boolean = (this compare that) <  0  
  4.  def >  (that: A): Boolean = (this compare that) >  0  
  5.  def <= (that: A): Boolean = (this compare that) <= 0  
  6.  def >= (that: A): Boolean = (this compare that) >= 0  
  7.  def compareTo(that: A): Int = compare(that)  
  8. }  

     在系统整体设计阶段,做核心结构或模块抽象时,可以把具有同类行为和属性的特征抽象出来形成一个特质,然后在类型顶层(超级抽象类)或核心或子类型中混入一个或多个需要的特质。这样做的好处在于可以按照特征对类型中主要功能进行分解和抽象,更好的任务分工,提高后期模块功能的可扩展和可维护性。这样到每一个开发者手里的都是一个特征,后期功能扩展更加高效和清晰。例如开发一个关于消费者电商购买力的一个数据数据挖掘系统,假设按照用户年龄对用户进行分类简单分类——青年,中年,老年,将衡量用户购买能力基本特征分为以下五类:时间处理特征,地点处理特征,消费处理特征,商品类型处理特征和潜在购买特征;抽象类按照计算维度定义多个钩子函数,实现评价用户购买能力指标的计算模型,特征汇聚等的实现。子类主要代表不同类型用户的平台个性信息,计算因子,权重等基本信息。通过这种设计方式可以将核心分析计算功能定义在抽象类中,实现功能的更高类聚性(专业的人做专业的事)。


如果使用java实现不管是使用多继承还是接口,想想都头大,而且不便于开发分工和后期维护,抽象类中实现的功能太多,很难理解维护。

http://blog.csdn.net/yangguo_2011/article/details/30289735

 
 
分享到:
评论

相关推荐

    响应式架构 消息模式Actor实现与Scala.Akka应用集成

    8. 实战案例:分析实际项目中的示例,如何将Akka应用于Web服务、大数据处理或其他并发场景。 通过以上知识点的学习,开发者能够熟练掌握使用Scala和Akka构建响应式架构的方法,进而构建出能够适应现代分布式计算...

    scala akka

    - **ZeroMQ/Camel**:这些库可以通过Akka集成,以支持更复杂的网络交互场景。 #### 6. Akka的实用工具 - **EventBus**:事件总线是一种发布订阅模式,用于解耦不同的组件。 - **Logging**:日志记录对于调试和运维...

    用Scala写的akka actor简单demo

    总的来说,这个简单的Scala Akka Actor demo提供了一个学习Akka和Scala并发编程的实践平台,可以帮助开发者更好地理解和应用Akka框架。通过这个示例,可以深入理解Actor模型的优势,以及如何在实际项目中利用它来...

    Scala Akka项目源码

    Scala Akka是一个强大的工具包,用于构建高度并发、分布式和反应式的应用程序。它基于actor模型,使得在Java虚拟机(JVM)上编写这类程序变得简单高效。Akka的使用通常涉及以下几个核心概念: 1. **Actor系统**:...

    akka框架,应用于scala

    Akka之所以使用Scala语言编写,是因为Scala的强大特性和其与JVM的无缝集成,使得Akka能够充分利用JVM的优势并发挥出Scala的函数式编程和面向对象编程的双重优势。同时,Akka也提供了对Java的全面支持,开发者可以...

    响应式架构++消息模式Actor实现与Scala.Akka应用集成+,沃恩·弗农+

    8. **案例研究**:可能包含实际项目案例,展示如何在真实世界的应用场景中应用Akka和响应式架构。 9. **最佳实践**:提供了一些关于如何设计和实现高性能、可维护的Akka系统的指导原则和建议。 通过阅读这本书,...

    响应式架构 消息模式Actor实现与Scala.Akka应用集成 高清扫描版

    响应式架构 消息模式Actor实现与Scala.Akka应用集成 高清扫描版

    Akka Scala 学习高清原版pdf

    Akka是一个用Scala和Java编写的库,用于构建并发、分布式以及容错的事件驱动应用。Akka框架借鉴了Erlang的并发模型,但它是建立在JVM之上,并且提供了丰富的抽象和工具,能够简化开发工作。 标题“Akka Scala 学习...

    响应式架构 消息模式Actor实现与Scala.Akka应用集成 ,沃恩·弗农

    在这个主题中,我们将深入探讨消息模式下的Actor实现,以及如何在Scala中利用Akka框架进行应用集成。 首先,让我们理解什么是Actor模型。Actor模型是并发计算的一种理论框架,由Carl Hewitt在1973年提出。在该模型...

    Reactive.Programming.with.Scala.and.Akka.1783984341.epub

    Harness reactive programming to build scalable and fault-tolerant distributed systems using Scala and Akka About This Book Use the concepts of reactive programming to build distributed systems ...

    基于Akka的加密消息通信.rar_scala akka_基于Akka通信框架的加密通信项目_消息通信

    Scala是一种函数式和面向对象编程语言,它与Java无缝集成,是开发Akka应用的首选语言。尽管描述中提到不支持Scala,但Akka的典型实现是使用Scala编写的,因此我们将以Scala为背景来探讨这个项目。 **Akka Actor系统...

    Reactive Programming with Scala and Akka mobi

    Reactive Programming with Scala and Akka 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Reactive Programming with Scala and Akka(Pdf格式)

    《Reactive Programming with Scala and Akka》是一本关于使用Scala语言和Akka框架开发响应式程序的专业书籍。该书系统地介绍了响应式编程的概念、原理和实践,尤其强调了响应式编程在构建可伸缩、高效能、高可靠性...

    响应式架构 消息模式Actor实现与Scala.Akka应用集成.rar

    《响应式架构:消息模式Actor实现与Scala、Akka应用集成》由10章构成,详细介绍了使用Actor模型中的响应式消息传输模式的理论和实用技巧。其中包括:Actor模型和响应式软件的主要概念、Scala语言的基础知识、Akka...

    akka_2.12-2.4.18.zip

    Akka是一个基于Actor模型的高性能、容错的Java...Akka广泛应用于需要处理大规模并发和分布式计算的场景,如大数据分析、实时系统和微服务架构。通过理解和熟练使用Akka,开发者能够构建出更加可靠、可扩展的软件系统。

    akka scala分布式计算

    akka scala 实现求连续平方和,分布式计算,快速理解分布式计算原理!

    Akka scala

    **Akka Scala** 是一个基于Actor模型的工具包,适用于构建高度并发、分布式且容错的应用程序。Akka Scala 不仅支持Scala语言,还提供了对Java的支持,使得开发者能够利用其特性来构建响应式系统。 #### 二、什么是...

Global site tag (gtag.js) - Google Analytics