Non è l'uso diretto di forme di puntatori primitivi di Primitive Obsession?

0

L'uso di tipi di dati primitivi per rappresentare idee di dominio è l'odore del codice chiamato Obsione primitiva. Ad esempio utilizzando il tipo di dati stringa per rappresentare nome umano: si consiglia di evitare ciò definendo un oggetto valore specifico del dominio con metodi appropriati.

Ma per quanto riguarda i puntatori?

Non è ossessione primitiva usare CItem * o shared_ptr invece di altri tipi specifici di dominio come CItemHandle, CItemLink ecc.?

Modifica:

Il mio punto di vista con questa domanda è che l'utilità del tipo non riguarda solo i comportamenti che consente, ma anche i comportamenti che non consente. Il tipo primitivo ti dà alcuni vincoli. I tipi definiti dall'utente possono darti diversi vincoli. Grazie a questo, il tipo definito dall'utente può chiaramente modellare il dominio usando il vincolo di dominio e la dicitura domaing nella sua interfaccia e questo aiuta anche a promuovere il ragionamento giusto e nella giusta decisione quando effettuano cambiamenti nel sistema. Il tipo definito dall'utente che incapsula il puntatore ti dà semplicemente un controllo più preciso rispetto al puntatore stesso per farne un uso appropriato.

    
posta user3123061 08.02.2015 - 02:33
fonte

1 risposta

2

I puntatori di oggetti non sono primitivi nel senso che stringhe o int che sono. Un PersonName * non è un Genus * e non è una ProductDecription *. Non sorprende che l'equivalente ai primitivi per i puntatori sia  puntatori ai primitivi.

L'aggiunta di un ulteriore livello di riferimento indiretto non cambierà in alcun modo.

    
risposta data 08.02.2015 - 04:10
fonte

Leggi altre domande sui tag