In OOP, ambito statico indica che l'ambito è collegato alla classe e l'ambito dell'istanza è collegato a un'istanza specifica della classe.
Alcune lingue supportano locals statici , che consentono di mantenere un valore da una chiamata di una funzione a un'altra, comunque sempre in ambito statico.
Come puoi concludere da alcuni altri post di me qui, puoi dire che sono un grande fan di incapsulamento .
A volte uso una determinata istanza all'interno di una classe, solo all'interno di un metodo . Per esempio. una bandiera che indica se un certo metodo è già stato chiamato. La mia convenzione ( seguendo i buoni standard ) è mettere queste variabili subito prima della funzione, vicino al loro utilizzo. Idealmente, sarei in grado di posizionarli nell'ambito della funzione . Seguendo lo schema di denominazione dei locals statici, chiamiamo questo ambito ipotetico locals di funzioni .
Darien l'ha riformulato molto chiaramente in un commento:
Ah, so what you really want is something beyond even private protection, which is so closely protected that it is only visible to a single method within a single instance.
Ora so che potresti dire, seguendo il principio di responsabilità singola , questo metodo e le variabili associate dovrebbero molto probabilmente essere diviso in una classe separata. Per verificare questo - e ti sfido a fare lo stesso - ho esaminato alcuni file di codice casuali e ho trovato rapidamente i file sorgente (anche < 100 linee) dove poteva essere usata una "funzione locale".
In realtà, C # offre una soluzione a questo per uno scenario comune fuori dagli schemi. Proprietà implementate automaticamente nascondi il campo di supporto.
Questa idea potrebbe essere inverosimile, ma in qualche modo credo che avrebbe senso. Qualcuno sa di una lingua che supporta questo?