Recentemente, realizamos uma revisão de código do código Java do aplicativo móvel desenvolvido por um contratado externo e observamos que todos os objetos de domínio / objetos de transferência de dados são gravados neste estilo:
public class Category {
public String name;
public int id;
public String description;
public int parentId;
}
public class EmergencyContact {
public long id;
public RelationshipType relationshipType;
public String medicalProviderType;
public Contact contact;
public String otherPhone;
public String notes;
public PersonName personName;
}
Obviamente, esses membros são acessados diretamente em qualquer outro lugar do código. Quando perguntamos sobre isso, os desenvolvedores nos disseram que esse é um padrão de design de aprimoramento de desempenho habitual usado em plataformas móveis, porque os dispositivos móveis são ambientes com recursos limitados. Não parece fazer sentido; acessar membros privados por meio de getters / setters públicos não parece adicionar muito custo. E os benefícios adicionais do encapsulamento parecem compensar os benefícios desse estilo de codificação.
Isso geralmente é verdade? Isso normalmente é feito em plataformas móveis pelos motivos mencionados acima? Todos os comentários são bem-vindos e apreciados -