Android:应该将android bundle用作dto

时间:2015-01-20 19:05:13

标签: java android design-patterns android-bundle

通常的做法是使用POJO或DTO来建模来自api或数据源的数据。对于这些模型,您必须使用序列化/反序列化逻辑或使用像gson这样的库来执行相同操作。 我想知道我们是否可以在android中使用Bundle作为dto,因为它已经被用于在片段和活动之间传递数据。 Bundle本质上是哈希映射的包装器,因此我们可以在其中放入/获取任何数据。

在Android应用中使用Bundles作为DTO是一个好习惯吗?这种方法有哪些优点/缺点?

2 个答案:

答案 0 :(得分:0)

Is it a good practice to use Bundles as the DTO in your android app?

不,不是。 Bundlefinal class,因此您可能无法扩展自己的分类法,以针对您的问题域调整e重用代码。

What are the advantages/disadvantages of this approach?

  • 优点:

    • 内置的android对象,它实现Parcelable而非常规Serializable(更快的序列化)。
  • Disavantages:

    • 它是final class

    • 您无法控制或决定如何处理内部数据。

    • 数据类型限制。

    • 抽象不佳。

    • 不可扩展。

    • 仅用于活动或服务之间的沟通。因此,如果您需要,您可能无法控制其生命周期或管理其参考文献。

答案 1 :(得分:0)

Bundle基本上是HashMap。此外,您不希望在Bundle中放置大尺寸数据,因为如果您将此Activities用作Bundle数据,则会显着减慢打开Intent的速度。< / p>

HashMap本身就是一种低级数据抽象。您可能希望围绕HashMap构建DTO,但这是一个实现细节。