Classi derivate e spazi dei nomi

4

Sto derivando una classe, da usare nella mia applicazione, da una classe fornita da un altro gruppo. La classe derivata dovrebbe essere nello spazio dei nomi per la mia applicazione o lo spazio dei nomi della classe genitore?

Mentre sto estendendo la classe per aggiungere funzionalità di cui ho bisogno, le funzionalità aggiunte non sono specifiche della mia applicazione. Il progetto che contiene la classe genitore è anche raramente aggiornato quindi c'è una possibilità che le mie aggiunte non vengano mai rilevate ... Forse nessuna di queste cose è importante.

    
posta Charlie 15.03.2012 - 18:14
fonte

2 risposte

6

Dovrebbe essere nel namespace della tua applicazione

Dato che stai estendendo la classe per aggiungere funzionalità per la tua applicazione, la classe dovrebbe far parte dello spazio dei nomi dell'applicazione, non di uno diverso.

Ora se anche altre applicazioni utilizzerebbero questa classe derivata oltre alla prima, creerò un file di libreria separato (e spazio dei nomi) che contiene componenti personalizzati dal primo spazio dei nomi e importerà questa libreria in qualsiasi applicazione che ha bisogno di usare la classe derivata.

    
risposta data 15.03.2012 - 18:32
fonte
2

Si sta sottoclassando un oggetto dalla libreria (lo spazio dei nomi della classe genitore) per rendere la libreria evoluta anziché creare un ibrido tra lo spazio dell'applicazione e la libreria. Quindi, idealmente tale derivazione dovrebbe / potrebbe essere utile anche ad altre applicazioni. Se la classe derivata si trova nello stesso spazio dei nomi della classe genitore, ciò sarebbe relativamente diretto; dove, come se fosse nel namespace della tua app, introdurrebbe una dipendenza non necessaria per l'App2 sulla tua app. Quindi, la classe derivata dovrebbe trovarsi nello spazio dei nomi delle librerie.

Inoltre potresti voler leggere questo: Perché la sottoclasse è troppo brutta (e quindi perché dovremmo usare i prototipi per farla franca)?

    
risposta data 15.03.2012 - 18:40
fonte

Leggi altre domande sui tag