2016-07-18 15 views
0

Ich entwerfe meine Android-App, um separate Modell-/Entitätsklassen für Webdienste, Datenbanken, Domänen und Benutzeroberflächen zu erstellen.Zu viele Objekte zum Trennen von UI-, Domänen- und Datenebenen

Ich würde meine Web-Service-Objekte in Domain-Objekte verwandeln. Dann, wo ich Recycler-Ansicht habe, erstelle ich UI-Model-Objekte für jede Zeile von meiner Domain, die eine Untermenge wäre.

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

Ich habe auch über https://github.com/PaNaVTEC/Clean-Contacts kommen, welche eine Probe-Codebasis ist, die streng jede Schicht trennt.

Ich weiß, es ist ein Kompromiss zwischen Leistung und Design, aber was wird empfohlen? Ich mag das Design wirklich, aber meine Sorge ist die Anzahl der Objekte instanziiert.

Antwort

0

Meine Annahme ist, dass es gut ist, Entitäten zwischen verschiedenen Schichten Ihrer Anwendung zu teilen, solange dabei keine Implementierungsdetails zwischen den Layern verloren gehen.

ich gerne eine Klasse wie teilen würde:

public class Product { 

    private String name; 
    private BigDecimal price; 
    private boolean isInStock; 

    //.. 
} 

Aber würde nicht teilen sich eine Klasse wie:

public class MyNetworkLibraryResponse<T> { 

    private int status; 
    private Throwable error; 
    private T data; 

    //... 
} 

Wenn Sie jemals für MyNetworkLibraryShineyNewNetworkLibrary zu tauschen entschieden würde, Sie bald kommen loslösen.

Product wäre jedoch ein integraler Bestandteil Ihrer Domain. Sofern Sie Code nicht über Geschäftsdomänen hinweg wiederverwenden müssen, werden Sie ihn wahrscheinlich besser freigeben als eine erhöhte Komplexität verursachen, indem Sie einen ProductViewModel

erstellen