我正在设计我的Android应用程序,分别为Web服务,数据库,域和UI创建模型/实体类。
我会将我的Web服务对象转换为域对象。然后在我有回收站视图的地方,我为我的域中的每一行创建UI模型对象,这将是一个子集。
https://developer.android.com/training/articles/perf-tips.html#ObjectCreation
我还遇到了https://github.com/PaNaVTEC/Clean-Contacts这是一个严格分隔每个图层的示例代码库。
我知道这是性能和设计之间的权衡,但推荐的是什么?我非常喜欢这个设计,但我关心的是实例化的对象数量。
答案 0 :(得分:0)
我对此的看法是,只要这样做不会泄漏层之间的实现细节,就可以在应用程序的不同层之间共享实体。
我很乐意分享一个类,如:
public class Product {
private String name;
private BigDecimal price;
private boolean isInStock;
//..
}
但不会分享如下的课程:
public class MyNetworkLibraryResponse<T> {
private int status;
private Throwable error;
private T data;
//...
}
如果您决定将MyNetworkLibrary
换成ShineyNewNetworkLibrary
,那么很快就会失败。
Product
将成为您域名中不可或缺的一部分。除非您需要跨业务领域重新使用View代码,否则您可能最好不要共享它而不是导致复杂性增加ProductViewModel