Kotlin 核心编程 (60):面向对象 3.4.4

阅读数:1 2019 年 12 月 28 日 22:25

Kotlin核心编程(60):面向对象 3.4.4

(数据类的约定与使用)

内容简介
本书不是一本简单介绍 Kotlin 语法应用的图书,而是一部专注于帮助读者深入理解 Kotlin 的设计理念,指导读者实现 Kotlin 高层次开发的实战型著作。书中深入介绍了 Kotlin 的核心语言特性、设计模式、函数式编程、异步开发等内容,并以 Android 和 Web 两个平台为背景,演示了 Kotlin 的实战应用。
全书共 13 章,分为 4 个部分:
热身篇—Kotlin 基础(第 1~2 章),简单介绍了 Kotlin 设计哲学、生态及基础语法,其中包括 Kotlin 与 Scala、Java 之间的关联与对比,以及 Kotlin 的类型声明的特殊性、val 和 var 的使用、高阶函数的使用、面向表达式编程的使用、字符串的定义与操作等内容;
下水篇—Kotlin 核心(第 3~8 章),深入介绍了面向对象、代数数据类型、模式匹配、类型系统、Lambda、集合、多态、扩展、元编程等 Kotlin 开发核心知识,这是本书的重点,其中涉及很多开发者特别关心的问题,比如多继承问题、模式匹配问题、用代数数据类型抽象业务问题、泛型问题、反射问题等。
潜入篇—Kotlin 探索(第 9~11 章),探索 Kotlin 在设计模式、函数式编程、异步和并发等编程领域的应用,其中包括对 4 大类设计模式、Typeclass 实现、函数式通用结构设计、类型替代异常处理、共享资源控制、CQRS 架构等重点内容的深入剖析;
遨游篇—Kotlin 实战(第 12~13 章),着重演示了 Kotlin 在 Android 和 Web 平台的实战案例,其中涉及架构方式、单向数据流模型、解耦视图导航、响应式编程、Spring 5 响应式框架和编程等内容。

前面主要讲解了 Kotlin 中数据类的创造意图,接下来我们来看看如何设计一个数据类,并且合理地使用它。

如果你要在 Kotlin 声明一个数据类,必须满足以下几点条件:

  • 数据类必须拥有一个构造方法,该方法至少包含一个参数,一个没有数据的数据类是没有任何用处的;
  • 与普通的类不同,数据类构造方法的参数强制使用 var 或者 val 进行声明;
  • data class 之前不能用 abstract、open、sealed 或者 inner 进行修饰;
  • 在 Kotlin1.1 版本前数据类只允许实现接口,之后的版本既可以实现接口也可以继承类。

数据类在语法上是如此简洁,以至于它可以像 Map 一样,作为数据结构被广泛运用到业务中。然而,数据类显然更灵活,因为它像一个普通类一样,可以把不同类型的值封装在一处。我们把数据类和 when 表达式结合在一起,就可以提供更强大的业务组织和表达能力。我们会在下一章重点介绍它的高级应用。

数据类的另一个典型的应用就是代替我们在 Java 中的建造者模式。正如你所知,建造者模式主要化解 Java 中书写一大串参数的构造方法来初始化对象的场景。然而由于 Kotlin 中的类构造方法可以指定默认值,你可以想象,依靠数据类的简洁语法,我们就可以更方便地解决这个问题。同样,当前并不会介绍其具体的使用,我们会在第 9 章来深入讨论这种方案。

Kotlin核心编程(60):面向对象 3.4.4

购书地址 https://item.jd.com/12519581.html?dist=jd

评论

发布