Foros del Web » Programación para mayores de 30 ;) » .NET »

Coleccion de clases dentro de una clase

Estas en el tema de Coleccion de clases dentro de una clase en el foro de .NET en Foros del Web. Buenas. Estoy intentando hacer una cosa y no se muy bien por donde orientarlo. Tengo que manejar una web deportiva con multitud de deportes, cada ...
  #1 (permalink)  
Antiguo 31/08/2008, 04:34
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Coleccion de clases dentro de una clase

Buenas.
Estoy intentando hacer una cosa y no se muy bien por donde orientarlo.
Tengo que manejar una web deportiva con multitud de deportes, cada usuario va a tener una serie de deportes y cada deporte se manejara diferente en la BBDD.
Para ello he pensado en tener una clase que obtenga los deportes del usuario y que instancie una clase por cada deporte, estas clases seran futbol,baloncesto, tenis, etc...
Esta clase debe tener alguna propiedad con la coleccion de deportes y ademas debe poder acceder a estos deportes.
No se si sera la mejor solucion o la mas efectiva, tampoco se muy bien como plantearlo.
¿Alguien ha hecho algo parecido?
__________________
Moitas Gracias desde Galiza!!!
  #2 (permalink)  
Antiguo 31/08/2008, 07:47
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Coleccion de clases dentro de una clase

Hola, como te va.

Pues es muy buena solución, pero tienes que esta habituado un poco a usar objetos para despues generar las metodos de acceso a datos, cargar los objetos etc. Pero si, es buena solución siempre usar objetos en .net.

No se si vos usas vb.net o c#, pero te dejo un ejemplo básico en c#

Primero tendrías que crear una clase para tus usuarios (podes usar una clase abstracta "persona" y luego la haces heradar a usuarios, es opcional)

Código PHP:

// codigo para el fichero deportes.cs

public class deporte
{

        private 
String myNombre;
        public 
String Nombre
        
{
            
get { return myNombre; }
            
set myNombrevalue; }
        }

}


// codigo para el fichero usuario.cs

public class usuario
{

        public 
usuario()
        {
          
myDeportes = new List<deporte>;
          
myNombre "";
         
myEdad 0;
        }
        private 
String myNombre;
        public 
String Nombre
        
{
            
get { return myNombre; }
            
set myNombrevalue; }
        }

        private 
int myEdad;
        public 
int Edad
        
{
            
get { return myEdad; }
            
set myEdadvalue; }
        }
         

        public List<
deportemyDeportes;
        public List<
deporteDeportes
        
{
            
get { return myDeportes; }
            
set myDeportesvalue; }
        }

Bueno, esto lo hice acá al vuelo, a lo mejor despues corregis algo, pero eso sería lo básico. Tenes una clase usuario y tiene una lista que es del tipo deportes.

Luego lo que harías para cargarlo:


usuario xUsu = new usuario();

xUsu.Nombre = "Carolina";
xUsu.Edad = 33;

//Creamos los deportes

deporte xDep = new deporte();

deporte.Nombre = "Futbol";

//Ahora agregamos el deporte al usuario.

xUsu.Deporte.Add(xDep);


Bueno, espero te sirva, te dejo el código en vb.net abajo


Código PHP:
Public Class deporte 
    
Private myNombre As String 
    
Public Property Nombre() As String 
        Get 
            
Return myNombre 
        End Get 
        Set 
            myNombre 
value 
        End Set 
    End Property 
    
End 
Class 


 
codigo para el fichero usuario.cs 

Public Class usuario 
    
    
Public Sub New() 
        
myDeportes 
        
myNombre "" 
        
myEdad 
    End Sub 
    
Private myNombre As String 
    
Public Property Nombre() As String 
        Get 
            
Return myNombre 
        End Get 
        Set 
            myNombre 
value 
        End Set 
    End Property 
    
    
Private myEdad As Integer 
    
Public Property Edad() As Integer 
        Get 
            
Return myEdad 
        End Get 
        Set 
            myEdad 
value 
        End Set 
    End Property 
    
    
    
Public myDeportes As List(Of deporte
    Public 
Property Deportes() As List(Of deporte
        
Get 
            
Return myDeportes 
        End Get 
        Set 
            myDeportes 
value 
        End Set 
    End Property 
End 
Class 
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 31/08/2008, 13:17
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Coleccion de clases dentro de una clase

Ok.
Eso va perfecto, pero si quiero tener una clase deporte que tenga una serie de metodos, funciones, etc... y luego una clase futbol, otra baloncesto y otra tenis que hereden de deporte. Y serian estas clases las que meteria en la coleccion.
Podria hacer con una interface que estas clases tuvieran una misma estructura para no complicar la cosa mucho.
__________________
Moitas Gracias desde Galiza!!!
  #4 (permalink)  
Antiguo 31/08/2008, 18:22
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Coleccion de clases dentro de una clase

Si lo ideal entonces seria q utilizaras dos interfaces IList o ICollection y IDeporte

public class Deportes : IList<IDeporte>
{

}

una clase deportes q puede contener cualquier Objeto que implemente IDeporte y con eso creo que puedes solucionar tu problema
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 01/09/2008, 08:16
 
Fecha de Ingreso: julio-2005
Mensajes: 217
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Respuesta: Coleccion de clases dentro de una clase

Ok. Muchas gracias PeterPay.
Dos preguntas solamente:
¿Como traduzco ese codigo a VB .NET?
¿Y como le digo luego a esa clase deporte que contiene un objeto Futbol o un Objeto Baloncesto que es de ese tipo?
__________________
Moitas Gracias desde Galiza!!!
  #6 (permalink)  
Antiguo 01/09/2008, 12:41
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Coleccion de clases dentro de una clase

Public Class Futbol : Implements IDeporte



Public Sub MySub() Implements IDeporte.MySub

End Sub
End Class

Public Class BaseBall : Implements IDeporte


Public Sub MySub() Implements IDeporte.MySub

End Sub
End Class

Public Interface IDeporte
'Define todos tus metodos compartidos por los deportes
Sub MySub()

End Interface

Public Class Deportes : Inherits List(Of IDeporte)


End Class

Public Class otraclase

Dim DeportesQuePractico As Deportes
Public Sub mine()
DeportesQuePractico.Add(New Futbol())
DeportesQuePractico.Add(New BaseBall())
End Sub

End Class

algun sample pequeño pero tu debes implementar acorde a tus necesidades , herencia e interfaces
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:20.