Como instanciar una clase.....

08/07/2004 - 23:12 por Eusebio | Informe spam
Hola todos,

estoy dando vueltas tratando de hacer lo siguiente:

Tengo 2 clases, y cada una de ella tiene exactamente los mismos métodos y
propiedades.

Lo que necesito es poder crear una instancia de una de las dos a partir del
contenido de una variable

dim miClase as object
if strInstanciar = "CrearClaseA" then
miClase = new ClaseA()
else
miClase = new ClaseB()
endif

el problema con el anterior código(no lo he probado) es que miClase queda
con el cuento de "Late Binding", y pues por comodidad a la hora de
programar es mejor con el intellisense.además porque esta clase es usada
practicamente para todo...

Sé que la clave está por el lado de la reflexion, pero es un tema que no he
logrado entender muy bien

ClaseA y ClaseB son dos clases que cada una ejecuta los mismos comandos una
contra un servidor sql server y la otra contra un servidor oracle...de tal
modo que la misma aplicación se pueda conectar a una u otra base de datos
sin modificar la interfaz de usuario

Gracias por adelantado...


Eusebio
 

Leer las respuestas

#1 Lázaro
09/07/2004 - 00:21 | Informe spam
1.- Crea un interface con los métodos y propiedades públicas que tienen tus
clases
Public Interface IMisclases
Sub MetodoUno(byval.)
Function MetodoDos(byval) as ..
Property Propiedad1 as ..
End Interface

2.- Luego obliga a que tus clases implementen ese interface

Public Class ClaseA
Implements IMisclases
End Class

3.- Sabes que en las clases tendrás que implementar todos los métodos y
propiedades a los que el interface obliga
4.- En el codigo que has enviado te quedaría así:
Dim miClase as IMisClases

If strInstanciar ="CrearClaseA" then
miClase = new ClaseA()
Else
miClase = new ClaseB()
End If

Usar reflection, es otra cosa distinta, se trata de poder invocar a métodos
y propiedades de una clase en ejecución sin conocerlos anteriormente...

Espero haber entendido bien tu duda.

Salu2


"Eusebio" wrote in message
news:
Hola todos,

estoy dando vueltas tratando de hacer lo siguiente:

Tengo 2 clases, y cada una de ella tiene exactamente los mismos métodos y
propiedades.

Lo que necesito es poder crear una instancia de una de las dos a partir


del
contenido de una variable

dim miClase as object
if strInstanciar = "CrearClaseA" then
miClase = new ClaseA()
else
miClase = new ClaseB()
endif

el problema con el anterior código(no lo he probado) es que miClase queda
con el cuento de "Late Binding", y pues por comodidad a la hora de
programar es mejor con el intellisense.además porque esta clase es


usada
practicamente para todo...

Sé que la clave está por el lado de la reflexion, pero es un tema que no


he
logrado entender muy bien

ClaseA y ClaseB son dos clases que cada una ejecuta los mismos comandos


una
contra un servidor sql server y la otra contra un servidor oracle...de tal
modo que la misma aplicación se pueda conectar a una u otra base de datos
sin modificar la interfaz de usuario

Gracias por adelantado...


Eusebio






Preguntas similares