Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Best practices
mercoledì 15 luglio 2009 - 09.19
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
brazero
Profilo
| Junior Member
63
messaggi | Data Invio:
mer 15 lug 2009 - 09:19
Ciao a tutti,
in base ad una logica di programmazione orientata agli oggetti..
in un'ottica ottimale a progetti complessi..
1) per i metodi di una classe, è meglio usare i parametri alle funzioni o usare le proprietà della classe stessa?
2) in classi diverse è "giusto" avere delle propietà uguali?
Grazie!
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mer 15 lug 2009 - 11:13
Ciao,
a mio parere:
>1) per i metodi di una classe, è meglio usare i parametri alle
>funzioni o usare le proprietà della classe stessa?
le proprietà servono se devi tenere in memoria (incapsulamento) qualche informazione, tipicamente relativa al funzionamento della classe stessa, quindi tra i vari metodi devono essere presenti.
Se quell'operazione è "atomica" diciamo, ossia fa solo quello e non dipende dallo stato dell'oggetto ma deve fare quella funzione in quel momento, allora puoi usare i metodi statici, e qui i parametri sono fondamentali perchè appunto sono "prive di stato" ossia non ci sono valori di proprietà da leggere o scrivere o cmq da tenere in considerazione per eseguire quell'operazione.
Ad esempio la classe "Convert" del Namespace "System" ha tutti metodi statici, perchè deve solamente eseguire le conversioni tra i tipi (passati come parametri ovviamente) e non gli interessa sapere se avevi impostato qualcosa prima, o a tenersi delle informazioni utili a bordo.
La classe "Form" del Namespace "System.Windwos.Forms" non ha metodi statici, infatti la costruisci e gli setti le varie proprietà (se non lo fai tu da codice lo fa Visual Studio per te nel designer) perchè ogni volta l'utente interagisce con lei, deve sapere dov'è, com'è fatta, il colore di sfondo, i suoi controlli etc...tutta una serie di informazioni che gli servono disponibili sempre, "condivisi" tra i vari metodi/eventi che succedono.
Non so se ho fatto un esempio chiarissimo...
>2) in classi diverse è "giusto" avere delle propietà uguali?
Certo, ogni classe ha vita e comportamento a se stante (o quasi) se le classi hanno funzionalità diverse, non vedo perchè non ci possono essere nomi uguali.
Il dubbio piuttosto lo avrei se le classi non possano essere unificate in un'unica e lavorando con gli overload dei vari metodi avere un comportamento più preciso.
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
mer 15 lug 2009 - 11:14
Ciao Fabio
>1) per i metodi di una classe, è meglio usare i parametri alle
>funzioni o usare le proprietà della classe stessa?
I parametri che dichiari nella firma del metodo(o funzione che sia) sono un qualcosa che rimame fine a se stesso ..... nel senso che i parametri, servono a far "funzionare" il metodo (o funzione che sia) e basta ..... le proprietà, invece ..... bhe sono le proprietà di un oggetto, pertanto, un qualcosa che danno un'identità alla classe stessa.
>2) in classi diverse è "giusto" avere delle propietà uguali?
Più che sbagliato è scomodo ( o se vogliamo .... è sbagliato da un punto di vista strutturale del progetto) .... ma puoi comunque prendere in considerazione, l'implementazione di un interfaccia che definisca metodi e proprietà comuni a più classi.
Spero di essere stato abbastanza chiaro.
Facci sapere....
Ciao
EDIT
Oooops abbiamo postato insieme
brazero
Profilo
| Junior Member
63
messaggi | Data Invio:
lun 20 lug 2009 - 11:38
Grazie ragazzi!
ho riflettuto e capito benissimo quello che volevate dire..
Ciao
Torna su
Stanze Forum
Elenco Threads
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 !