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