Logo
Section 1 / 10

枚举实现问题

让我们来了解一下在应用程序中实现枚举属性时出现的一些新问题。

导入

枚举实现问题

让我们来了解一下在应用程序中实现枚举属性时出现的一些新问题。

本章将介绍如何使用原生 JavaScript 构建前端 Web 应用程序,并处理枚举属性。我们还将学习如何应对多值属性,因为许多情况下枚举属性都是多值的。

新增问题

除了之前讨论的验证应用中遇到的复杂性之外,在实现枚举属性时还会出现以下新问题:

  1. 我们将模型类 Book 的 ES5 基于构造函数的类定义替换为对应的 ES2015 class 定义。这在保留 JavaScript 类构造函数语义的同时,提供了更便捷的语法。
  2. 不再显式定义 setter 方法,而是利用 ES5 中隐式的 get 和 set 方法特性,因为它们可以在类定义中方便地进行定义。
  3. 枚举数据类型必须以合适的方式在模型代码中进行定义。
  4. 枚举属性需要在模型类中定义,并通过合适的选项控件在用户界面中进行处理。

此外,代码中还出现了以下问题:

  1. 在模型代码中,现在需要关注以下事项:
    • 定义一个 ES2015 的 Book 类。
    • 为 Book 类的所有属性定义 get/set 方法。
    • 使用工具类 Enumeration 来定义枚举。
    • 定义单值枚举属性 originalLanguage,并将这些属性与其校验函数 checkOriginalLanguage 和 checkCategory 一起组织。
    • 定义多值枚举属性 otherAvailableLanguages 和 publicationForms,并为其配套定义校验函数 checkOtherAvailableLanguages 和 checkPublicationForms。
    • 扩展 Book.update 和 Book.prototype.toString 方法,使其能够处理新增的枚举属性。
  2. 在用户界面(即视图代码)中,需完成以下任务:
    • 在 retrieveAndListAllBooks.html 中添加新的表格列,并在 createBook.html 与 updateBook.html 中添加合适的选项控件。
    • 在 pl.v.retrieveAndListAllBooks 的 setupUserInterface() 方法中为新属性创建输出内容。
    • 在 pl.v.createBook 与 pl.v.updateBook 的 setupUserInterface() 方法中允许对新属性进行输入。

枚举

类模型