用于分隔UI,域和数据层的对象太多

时间:2016-07-18 19:32:17

标签: android performance domain-driven-design mvp

我正在设计我的Android应用程序,分别为Web服务,数据库,域和UI创建模型/实体类。

我会将我的Web服务对象转换为域对象。然后在我有回收站视图的地方,我为我的域中的每一行创建UI模型对象,这将是一个子集。

https://developer.android.com/training/articles/perf-tips.html#ObjectCreation

我还遇到了https://github.com/PaNaVTEC/Clean-Contacts这是一个严格分隔每个图层的示例代码库。

我知道这是性能和设计之间的权衡,但推荐的是什么?我非常喜欢这个设计,但我关心的是实例化的对象数量。

1 个答案:

答案 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