Pergunta

Esta é menos uma questão específica do código e mais uma questão de nomenclatura do Objective-C.Em C você tem estrutura para dados puros.No Enterprise Java, você tem classes "bean" que são puramente variáveis ​​de membro com getters e setters, mas sem lógica de negócios.No Adobe FLEX, você tem "Objetos de Valor".

No Objective-C, existe um nome próprio para um objeto (descendente de NSObject, é claro) que simplesmente possui ivars e getters/setters (ou @property/@synthesize, se você quiser ser sofisticado) e nenhuma lógica de negócios real?

Um exemplo mais concreto pode ser uma classe simples com getters e setters para nome de arquivo, tamanho de arquivo, descrição e diversos outros metadados.Você poderia então pegar um monte deles e jogá-los facilmente em um contêiner (NSDictionary, NSArray) sem a necessidade de um empacotamento NSValue confuso de uma estrutura C.Também é um pouco mais estruturado do que colocar, digamos, um monte de NSDictionaries filhos digitados livremente em um objeto contêiner pai.

Foi útil?

Solução

Não, não existe um nome especial (pelo menos até onde eu sei).Todos os objetos Objective-C que herdam de NSObject são objetos de primeira classe.É claro que você pode implementar classes apenas com getters e setters, mas mesmo as propriedades sintetizadas possuem uma "lógica de negócios" moderada para atomicidade e gerenciamento de memória.Você pode usar estruturas C para dados puros, se desejar (um exemplo em Cocoa é NSRect), mas então, como você disse, é mais difícil de usar com outras classes, como NSDictionary.

Outras dicas

Não existe um nome oficial para tal classe no Objective-C.As pessoas tendem a se referir a coisas como "objetos de valor" ou "objetos de dados puros", mas ambos estão sobrecarregados, pois também podem ser considerados como referência a NSValue (ou alternativamente, um valor de lista de propriedades) e subclasses NSData.Esta última é a maneira mais concisa de descrevê-los, eu acho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top