Em que caso deve-se declarar os modelos em MVVM como classes e em que caso como estruturas?
sobes.tech IA
Resposta da IA
No iOS, ao usar a arquitetura MVVM, a escolha entre classes e estruturas para os modelos depende dos requisitos de comportamento e gestão de memória.
-
Estruturas (struct) — são tipos de valor, copiados ao serem passados. São adequadas para modelos de dados simples e imutáveis, onde é importante evitar efeitos colaterais e garantir a segurança de threads. Por exemplo, modelos que representam dados estáticos ou DTO.
-
Classes (class) — são tipos de referência, passados por referência. Usadas quando o modelo precisa ter um estado mutável, suportar herança ou quando várias partes da aplicação precisam trabalhar com a mesma instância do modelo.
No MVVM, normalmente os modelos são declarados como estruturas se forem simples e não requererem lógica complexa de mudança de estado. Se o modelo contiver lógica de negócio, propriedades observáveis ou precisar ser um estado compartilhado, é melhor usar classes.
Exemplo:
struct UserModel {
let id: Int
let name: String
}
class UserViewModel: ObservableObject {
@Published var user: UserModel
// lógica de negócio e atualização de dados
}