美文网首页
Scala的函数式对象

Scala的函数式对象

作者: Grits | 来源:发表于2018-03-01 08:28 被阅读0次

函数式对象

函数式对象最显著的特征就是状态不变性(immutable state)

函数式对象的权衡(trade-off)

优点

1.不可变对象较可变对象更容易理解,因为不可变对象没有随着时间变化的复杂状态空间
2.可以自由的使用不可变对象,然而可变对象传入被调用方法之前,需要进行保护性拷贝(defensive copy)
3.不可变对象的使用,不用考虑并发的竞态情况
4.不可变对象可以安全的进行Hash。可变对象的状态变化,会导致hash值得改变,从而在hash table永远无法找到该对象

缺点

当更新操作时,需要比较大的对象图(object graph)被拷贝,可能会造成性能瓶颈(performance bottleneck)

不可变的类库都会提供可变的版本以供选择

预条件(precondition)检查

预条件是约束传入到方法或是构造器中的值,且调用者必须严格执行。使用require来进行逻辑判断

require(a == 1)

// if true, can pass
// else throw an IllegalArgumentException

相关文章

  • Scala系列文章目录

    Scala(三)-①-函数式编程和异常 Scala(四)-①-面相对象初级 Scala(四)-②-面相对象中级-包...

  • Scala面试题

    scala语言的特点: 集成了面向对象和函数式编程 函数式编程是将计算机的运算视为函数运算 链式编程 Scala中...

  • Scala编程的基础知识

    Scala是一个面向对象的函数式编程语言,在Scala中,一切皆函数。 函数式编程的优点: 提高生产效率,代码量更...

  • Scala基础

    Scala概述 Scala设计的目的是整合面向对象编程和函数式编程。Scala运行于Java平台(JVM),并兼容...

  • Scala函数式编程(四)函数式的数据结构 下

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Sc...

  • Scala函数式编程(五) 函数式的错误处理

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Sc...

  • Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍...

  • Scala的函数式对象

    函数式对象 函数式对象最显著的特征就是状态不变性(immutable state) 函数式对象的权衡(trade-...

  • Scala 概述

    Scala名称是scalable language,表明可扩展性较强 面向对象编程和函数式编程的结合 Scala代...

  • Scala-函数式编程

    Scala-函数式编程 1.函数式编程 1.1 面向对象和面向过程 面向对象 按照功能划分问题,将功能分解成不同的...

网友评论

      本文标题:Scala的函数式对象

      本文链接:https://www.haomeiwen.com/subject/jpdixftx.html