Domanda

Sono uno studente alla ricerca di risorse che possono aiutare me ulteriormente a capire come applicare correttamente modificatori di accesso ai membri / tipi come ho codificarle.

Lo so (in C #) quali restrizioni modificatori di accesso come private, pubbliche, protette, ecc messe in atto. Quando I Codice miei piccoli progetti ho la tendenza a fare proprio tutto pubblico. Sono certo che questa è una pratica assolutamente orribile quanto appena lancia incapsulamento fuori dalla finestra. So solo che mai quando è corretto usare qualcosa di simile interna vs. privato.

Qualcuno ha qualche buone risorse per aiutare me nella comprensione del corretto utilizzo dei modificatori di accesso?

È stato utile?

Soluzione

Questa è una domanda di tipo esperienza. Inizia dal livello del privilegio minimo e promuovere come necessario.

In altre parole, rendere tutto privato. Fino a quando si scopre che ha bisogno di essere promosso a proteggere o pubblico. Nel corso del tempo si otterrà un tatto per il previsto e poi scoperto gli usi delle classi.

Altri suggerimenti

Ho semplicemente rendere l'accesso di tutto il più restrittiva possibile:

  • Privato di default
  • Altrimenti interna, se si tratta di un'API esposto ad altre classi all'interno di questo complesso
  • Oppure, pubblico se si tratta di un'API esposta al di fuori del gruppo di
  • Oppure, protetta se è destinato ad essere chiamato solo da sottoclassi.

cominciare a mettere tutto privato. Se si sente il bisogno, cambiare il modificatore di conseguenza, fino a quando si ha la sensazione di scegliere il tipo giusto.

Per facilitare le cose, provare a utilizzare TDD , o si potrebbe ottenere in anche più problemi quando si arriva a scrivere unit test ...

Qualsiasi tipo di tutorial o materiale didattico vi darà la stessa guida, vale a dire quello che le altre registrazioni già ti ha dato. Quindi non aspettatevi molte informazioni utili in questa materia specifica da "risorse".

La risorsa principale che va al di là che è il codice che altre persone hanno scritto. Prendete un grande progetto # C (ad esempio Mono , o SharpDevelop ), e studiare il modo in cui specificamente seguiti i principi che sono stati spiegati a voi. Inoltre, se si dispone di una classe specifica per la progettazione, cercare di pensare a una classe simile nelle librerie di sistema, e cercare di scoprire come viene implementato (sia guardando il sorgente mono, oppure utilizzando il riflettore NET).

Si dovrebbe iniziare a pensare l'interfaccia di una classe, che è l'insieme necessaria e sufficiente di routine di cui ha bisogno per esporre al fine di raggiungere il suo scopo. Fare quel pubblico. Tutto il resto deve essere privato.

ho la tendenza a rendere tutto protetto che non è pubblico. Lasciando la libertà dei miei utenti di fare ciò che vogliono con la mia classe. Se le pause di classe che sarebbe stato il loro problema.

Ogni volta che si eredita da una classe è necessario sapere come funziona, anche se è oop di nascondere l'implementazione. È possibile nascondere l'attuazione, ma non si nasconde la documentazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top