2014-07-13 6 views

risposta

7

Dipende davvero da cosa stai costruendo. Se è una semplice applicazione VCL come Delphi è più conosciuta per, di solito non devi preoccuparti di questo. Tuttavia, se stai creando un pacchetto, ad esempio con componenti, devi essere sicuro di definire chiaramente l'ambiente che intendi utilizzare: VCL o FMX. Embarcadero ha aggiunto prefissi di namespace per poter differenziare le diverse soluzioni possibili.

Tuttavia, nella maggior parte degli scenari, lo . funge solo da rappresentazione visiva. Ti aiuta, il programmatore, a identificare le librerie che stai utilizzando.

Prendere ad esempio this other question. L'IDE/compilatore Delphi non accetta una unità molto comune senza aggiungere il prefisso namespace o lo spazio dei nomi nelle opzioni del progetto. L'unità standard Graphics doveva essere definita esplicitamente come Vcl.Graphics, al contrario di FMX.Graphics.

Su una nota a margine, utilizzare lo spazio dei nomi completo è comodo per molti programmatori che provengono da altre lingue in cui è stato applicato rigorosamente, e non solo, ma consente di vedere la natura di tutto in un solo colpo d'occhio, senza dovendo cercare altrove per ulteriori informazioni su ciò che stai effettivamente utilizzando.

EDIT

Inoltre, ho appena visto che l'utilizzo di spazi dei nomi pienamente qualificati aiuta anche accelerare in fase di compilazione, perché il compilatore non deve cercare di risolvere tutti gli spazi dei nomi.

3

Il vantaggio principale dei nomi completamente qualificanti è che il codice può essere compilato correttamente nei progetti, indipendentemente dalle impostazioni del prefisso dello spazio dei nomi di tali progetti.

Perché è utile? Bene, se stai scrivendo il codice dell'applicazione probabilmente conoscerai e controllerai le impostazioni del prefisso dello spazio dei nomi dei progetti che contengono una particolare unità. Tuttavia, se si sta scrivendo codice libreria, codice destinato a essere incluso in progetti esterni al proprio controllo, non è possibile prevedere quale sarà il prefisso dei namespace in tali progetti. Se non si qualificano completamente i nomi delle unità, si pone un vincolo sulle impostazioni dei progetti di qualsiasi progetto che utilizza il codice della libreria. E il codice della biblioteca non dovrebbe farlo.

Quindi, in sintesi, per il codice dell'applicazione, i qualificatori dello spazio dei nomi possono essere ragionevolmente omessi, se si preferiscono nomi meno dettagliati. Per il codice della libreria, è necessario utilizzare nomi completi per consentire al codice della libreria di stare in piedi da solo.