跳转到内容

WebObjects/Wirehose/快速开发

来自维基教科书,开放世界中的开放书籍

WireHose 框架旨在帮助您更快地构建内容管理和门户应用程序。您可以使用它们从头开始构建新应用程序,或者将 WireHose 功能添加到现有代码库中,通常无需对 WireHose 对象进行子类化。

Xcode 模板

[编辑 | 编辑源代码]

WireHose 提供了 Xcode 模板来创建新的 WireHose 应用程序和框架。它还包括用于快速构建新频道、频道工厂、可标记和可索引实体的模板,以及用于呈现和编辑频道和资源的组件。

使用接口而不是子类化

[编辑 | 编辑源代码]

WireHose 定义了几个 Java 接口,您可以实现这些接口,使您能够将 WireHose 支持添加到您现有的企业对象类中。WHEnterpriseObject 提供了用于自动发现实现接口的实体以及对支持给定接口的所有实体执行获取的方法。WHFetcher 定义了一个基于实体名称或接口获取、缓存和检索对象的接口,并且WHCachingDataSource 提供了一个默认实现,它也充当 EODataSource,因此您可以使用它来驱动显示组。大多数接口都提供了默认实现,因此您需要编写以支持特定接口所需的代码量最少。

在运行时创建实体

[编辑 | 编辑源代码]

WireHose 广泛使用实体继承,利用了以下事实:如果实体在运行时不可见,则描述该实体的任何数据库行都简单地对应用程序不可用。这是一种简单但有效的方法,可以将对象分区到共享相同代码库且仅在配置文件或启动参数上不同的独立应用程序实例之间。例如,如果您部署了多个新闻门户,连接到西雅图门户的用户应该只看到西雅图地区的交通摄像头,而波特兰用户应该只看到波特兰地区的交通摄像头,但两者都应该能够访问国家新闻提要。

WHEnterpriseObject 提供了几种在运行时动态创建子实体的方法,因此您不必在 EOModeler 中手动建模许多常见的继承类型。这些方法对于水平继承和单表继承特别方便。

WHEnterpriseObject 还包括对“基于附属关系的继承”的特殊支持,许多 WireHose 实体都使用这种方法。在这种方法中,您在基本实体上定义一个名为“附属关系”的属性。此属性与限制性限定符一起使用来标识子实体。WHApplicationHelperWHTag 使用“默认附属关系”来确定应该使用哪个子实体。WHApplicationHelper 还允许应用程序同时访问多个附属关系,并且 WHEnterpriseObject 可以自动为所有可用附属关系创建子实体。

数据库独立性

[编辑 | 编辑源代码]

WHEnterpriseObject 使在应用程序启动时在数据库之间切换变得简单。可以通过命令行参数动态替换 EOModel 连接字典,因此您可以在开发和部署期间使用不同的数据库,或者将同一应用程序的多个实例部署到多个数据库后端。WireHose 还广泛使用属性原型,因此即使在不同数据库供应商之间切换时,也不需要修改模型。此外,由于数据库在支持布尔值的方式上有所不同,WHEnterpriseObject 提供了实用程序方法,这些方法透明地设置和检索布尔值,无论列是定义为 INT、BOOLEAN 还是 CHAR。


开始内容经 Gary Teter 许可使用。WireHose 和眼球箭头徽标是 Gary Teter 的商标。

华夏公益教科书