使用 POJO 或 DTO 对来自 api 或数据源的数据进行建模是一种常见的做法。对于这些模型,您必须纠正序列化/反序列化逻辑或使用像 gson 这样的库来做同样的事情。
我想知道我们是否可以在 android 中使用 Bundle 作为 dto,因为它已经被用于在片段和活动之间传递数据。Bundle 本质上是哈希映射的包装器,因此我们可以在其中放入/获取任何数据。
在您的 android 应用程序中使用 Bundles 作为 DTO 是一种好习惯吗?这种方法的优点/缺点是什么?
使用 POJO 或 DTO 对来自 api 或数据源的数据进行建模是一种常见的做法。对于这些模型,您必须纠正序列化/反序列化逻辑或使用像 gson 这样的库来做同样的事情。
我想知道我们是否可以在 android 中使用 Bundle 作为 dto,因为它已经被用于在片段和活动之间传递数据。Bundle 本质上是哈希映射的包装器,因此我们可以在其中放入/获取任何数据。
在您的 android 应用程序中使用 Bundles 作为 DTO 是一种好习惯吗?这种方法的优点/缺点是什么?
Is it a good practice to use Bundles as the DTO in your android app?
不,这不对。Bundle
是一个final class
,因此您可能无法扩展您自己的分类法以适应您的问题领域的重用代码。
What are the advantages/disadvantages of this approach?
好处:
Parcelable
实现而不是常规Serializable
(更快的序列化)的内置 android 对象。缺点:
这是一个final class
。
您无法控制或决定它将如何处理内部的任何数据。
数据类型限制。
抽象性差。
不可扩展。
仅用于活动或服务之间的通信。因此,如果需要,您可能无法控制其生命周期或引用管理。
Bundle
本质上是HashMap
. 此外,您不希望将大尺寸数据放入 a 中,因为如果您使用此类数据,Bundle
它会显着减慢打开速度。Activities
Bundle
Intent
HashMap
本身就是一个低级的数据抽象。您可能想围绕 a 构建您的 DTO,HashMap
但它是一个实现细节。