2017-04-09 25 views
2

我使用retrofit 2从Web API获取数据。现在我有一个如下结构:我是否需要为我的应用程序和其他响应创建不同的模型?

-app 
|-model 
    |-User.java 
|-network 
    |-model 
    |-ApiUser.java 
    |-service 
|-presenter 
|-view 

retrofit将响应转换为ApiUser对象。我创建了一个映射器来将ApiUser映射到User对象。我认为我应该为我的应用程序使用单独的模型。我可以使用改造后返回给我的相同模型,但如果我想使用其他服务或数据源,该怎么办?然后我会重构我的所有应用程序。网络下的模型通常与应用模型具有相同的结构。同样的问题可以应用于数据库模型和应用程序模型。

所以我想知道什么是您的应用程序结构使用的最佳做法。

+0

这是基于意见的,我想。一个好的做法是尽快使应用程序工作,并根据需要重构 –

+0

IMO使用相同的模型不仅更清洁,还减少了apk大小。另外,如果使用的API数量非常多,则可以编写大量的mapper函数。 –

回答

0

一些做法是有这样的:

  • 您可以与所有将每次来共同应对涉及共同应对模式。
  • 然后,您可以制作单独的响应模型,这些模型将具有不同的定义,并在此处扩展通用基础模型。
  • 另一件需要注意的事情是,Retrofit 2根据响应代码为您提供了自己的响应成功状态,因此您无需在API中保持成功状态,状态代码就可以实现。
相关问题