加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

“模块化”Scala指南

发布时间:2020-12-16 09:18:14 所属栏目:安全 来源:网络整理
导读:最近我很困惑如何组织我的 Scala代码,因为有很多选择. Scala有什么指导如何/何时使用包,对象,包对象来组织代码? 解决方法 了解Scala的功能 首先,我们需要了解每个模块化策略的功能和限制. 包 这些工作就像在Java中一样.您可以使用许多文件来声明一个包的不
最近我很困惑如何组织我的 Scala代码,因为有很多选择.

Scala有什么指导如何/何时使用包,对象,包对象来组织代码?

解决方法

了解Scala的功能

首先,我们需要了解每个模块化策略的功能和限制.

这些工作就像在Java中一样.您可以使用许多文件来声明一个包的不同部分,您可以将许多级别深入.这为您的布局提供了最大的灵活性.然而,由于默认的类加载器希望只能在包中查找类和接口,所以Scala可以让你放在那里. (类,特征和对象.)

对象

对象可以包含任何东西 – 方法,字段,其他对象,类,特征等.子类,特征和对象实际上是它们自己的独立实体,其中包含对象作为名称标记的前缀(就JVM而言) ).一个对象必须完全包含在一个文件中,尽管你可以任意深入地嵌套子类,但是它可以通过改变更长的名字而不是添加到类加载器的路径.

包对象

只有拥有对象和包的问题是您可能需要一个嵌套结构:

scala.xml
scala.xml.include
scala.xml.include.sax

所以你需要使用包(以避免有一个巨大的文件和令人不安的长类名).但你也可能想要

import scala.xml._

使各种常量和隐式转换可用于您,以便您需要使用对象. Package objects来抢救;它们与普通物体基本相同,但是当你说

import scala.xml._

你可以获得包中的所有内容(scala.xml._),也可以包含相应包对象(scala.xml.package)中的所有内容.

如何模块化你的代码

现在我们知道每个部分的工作原理,如何组织有相当明显的规则:

>将相关代码放入包中>如果有很多相关的子部件,将它们放入子包中>如果一个包需要implicits或者常量,把它们放到该包的package对象中>如果您有一个包层次结构的终端分支,您可以选择它是应该是一个对象还是一个包对象.有一些东西,包对象不允许做(尽管列表越来越小 – 我不知道有什么留下,除了禁止遮蔽包中的其他名称),所以一个常规的对象可能成为一个更好的选择.只要你不担心二进制兼容性,以后很容易改变主意 – 在大多数情况下,只需将对象更改为包对象即可.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读