utilizzare property o variabili public nelle classi?

giovedì 30 novembre 2006 - 20.22

Amodio Profilo | Expert

salve a tutti

vorrei porre una semplice domanda su come i programmatori generalmente tendono a realizzare le proprie classi
questa domanda mi viene da porla in quanto negli ultimi progetti :
1)non avevo bisogno di utilizzare componenti che richiedessero le property nelle classi a cui passo
2) non avevo bisogno di sapere quando viene valorizzata una variabilie o quando viene prelevata
3) non avevo bisogno di impostare una variabile in sola lettura o sola scrittura
quindi ho deciso di mettere delle semplici variabili public nelle classi

come ragionamento ovviamente vorrei confrontarmi con persone + esperte di me per, infatti sopra ho posto i motivi che ho avuto per lasciare le property e mettere le variabili public

qualcun'altro lo fa come me? si no xke?
grazie

Cteniza Profilo | Guru

Mai, mai, mai esporre le variabili come pubbliche.
Se un giorno vorrai mettere dei controlli o far scattare degli eventi in funzione del cambio di valore o verificarlo con un tuo metodo particolare come farai ?.
Inoltre c'è il fatto che si possono definire delle proprietà readonly (con le variabili come fai?).
In presenza di membri esposti dichiarare una variabile dello stesso tipo privata es:
private m_Membro As String
Public Property Membro() As String
get
set
End Property

Amodio Profilo | Expert

come ho accennato inizialmente, ho analizzato bene a cosa dovesse servire la classe, ed ho appurato che non mi servono controlli, in quanto il controllo di validita' lo faccio direttamente nel form dove valorizzo le variabili

Cteniza Profilo | Guru

Quella di scrivere codice direttamente sui controlli presenti nelle forms piuttosto di una validazione accentrata è una pratica che considero del tutto sbagliata.
Il processo di astrazione, incapsulamento negli oggetti parte proprio dall'analisi del codice da scrivere.
Magari si scopre che è più facile scrivere codice più astratto prima e risparmiare poi nell'implementazione.
Sicuramente scrivere del codice "in linea" è foriero di molteplici guai (cattivo controllo del sorgente, effetti diversi indesiderati per controlli analoghi, manutenzione molto difficile e complicata, costruzione di una torre di babele, necessità di rileggere e ritestare molto più codice in caso di aggiornamenti).


Amodio Profilo | Expert

mi trovo in disaccordo in questo tuo ultimo punto
in quanto uno dei tanti controlli che si possono effettuare è la valorizzazione dei campi obbligatori

se confermi che la classe deve essere fissa e non modificabile successivamente, puoi renderti benissimo conto che ogni volta che si ha necessita' di avere un nuovo campo obbligatori bisognera' per forza di cose ritoccare la classe! quindi o si ha una file classe nel progetto beh venga, ma se si hanno varie dll?? ogni volta è da ricompilare il tutto!!!

Cteniza Profilo | Guru

Sono convinto che per poter capire fino in fondo la filosofia della gestione ad oggetti ciascun programmatore debba percorrere la propria strada fatta di esperienze e di miglioramento professionale.
Se poi si scrive del software "BCR" (basta che respira) beh ce ne sono tanti in giro :)).
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5