何时使用Classes vs Objects vs Case Classes vs Traits

Jas*_*son 11 scala

这是我到目前为止所理解的.

当我们需要实例化对象时,应该使用类

只有当我们有一个单例要求意味着不需要多个"对象"实例时,我们才使用"对象".我在想当我们在项目中构建公共库函数或实用程序函数时,我们可以使用"对象",这样我们每次使用该对象中的方法/函数时都需要实例化.

当我们想要保存样板代码时,可以使用案例类.假设我们有"股票"类.每个股票一般都有数百个成员变量.而不是开发人员为setter和getter编写代码,如果我们是case类,它会生成许多默认代码.

特征:不知道何时使用.在初始化期间,Traits和Objects都不接受参数.

任何更多的想法和想法都会分享.

Mar*_*rco 16

在Scala中,类似于任何其他OO语言(例如Java) - 就是你在应用程序中使用类来构建对象(而不是Scala对象),这些对象具有状态(例如,持有属性,比如说Person的名称) .

Scala对象是单身人士.你主要在Scala中使用它

  • 创建函数/工件,它们不需要状态/属于特定对象.在其他OO语言中,您使用static关键字来表示此行为.
  • 提供工厂方法(特别是通过apply方法)来实例化类(请参阅Scala配套对象)

案例类旨在用作轻量级类(例如datacontainers).它们在默认情况下是不可变的,并且应该在结构上进行比较(即通过比较值/状态)而不是通过引用进行比较.此外,它们还提供开箱即用的序列化等功能.

特征就像Java中的接口一样具有更多特性.它们定义了类/对象的接口.

在开始之前,请深入了解Scala,我建议您首先熟悉经典的OO原则.