FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
Me parece que mezclas referencias a objeto y a interfaz.
Es no buena idea, porque tienen maneras diferentes de manejo del tiempo de la vida. Si usas objeto que soporta las interfaces, debes usar o solo referencias al objeto, o solo referencias a las interfazes del objeto. ?Que es razon de usar las interfaces en tu caso? Variantes possibles: 1) para trabajar con objetos de clases diferentes sin ancestro comun, que soporten el mismo interfaz. 2) para manejar automaticamente del tiempo de la vida del objeto 3) para simular herencia multiple 4) para transpasar el confín de exe/dll 5) para simular mix-in clases 6) ? |
#2
|
||||
|
||||
Hola rounin,
¿podrías explicar un poco a qué te refieres con (5) y (6)? // Saludos |
#3
|
|||
|
|||
Bueno, es algo complejo. Estoy haciendo una especie de motor q controle el comportamiento de cualquier juego q realice.
Entonces se supone q lee de un fichero xml y va cargando los distintos objetos necesarios (botones, animaciones, cajas de texto,...), ninguno de estos objetos son los q utiliza delphi como componentes ya q utilizo las DelphiX como librería grafica y no es muy compatible, aunq si posible... Bueno, entonces mi intención es llegar a controlar cada objeto através de interfaces, de tal forma q a la hora de tratarlos, no se sepa conq objeto se está tratando, sólo le dice cosas a los objetos, como q se ha producido un evento o ha recibido una orden, etc. (ellos ya sabrán lo q hacer) Por ahora la primera parte de interfaces q tenía pensado me ha ido bien, pero mis siguientes intentos han fracasado. En este caso, estoy ya casi convencido de q usar interfaces para el sonido no es conveniente ya q sería un objeto sonido para todos los objetos, por ejemplo si tengo un botón, en el caso de tener sonido, entonces, lo q he hecho es mandar un puntero del objeto sonido a el objeto botón y luego mediante el puntero puedo acceder al objeto sonido y poder cargar una canción, pararla, etc. El problema creo q ha sido q al descubrir la utilidad de las interfaces me he emocionado, y lo he querido meter hasta en la sopa, pero claro, lo único q he recibido son bofetadas, una tras otra, y al final he visto lo equivocado q estaba o eso creo. Aún asi, no las entiendo del todo, reconozco q son muy útiles, por lo menos para lo q quiero, vienen de perlas, pero sin olvidar q la herencia y otras cosas también tienen su peso y q no tengo q confundirme entre lo q quiero hacer y el método a utilizar. Pos eso, sólo una pregunta, se puede mandar una interfaz como parámetro o eso viola alguna de las reglas de las interfaces? Quiero decir, q si quiero pasar una interfaz a un objeto para q la controle, se podría hacer?. En el ejemplo q he mostrado, es un objeto q pertenece a otro objeto el q quiero q maneje la interfaz. Osea q hago un procedimiento q pasa como parámetro la interfaz. ¿Es una burrada?
Hay alguna forma de hacerlo? pos eso, muchas gracias por la ayuda |
#4
|
||||
|
||||
Reconozco que no he leido todo el hilo, pero a primera vista me parece que básicamente se ha dicho:
Cita:
Cita:
Hasta luego
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Creo q con eso me has respondido
Porq más o menos la pregunta era si podía hacer ese método, pasar una intefaz como parámetro, y entonces he empezado a pensar q era posible al no entender la pregunta o pensar q era algo tan obvio q no se vé y también xq no se preguntar, la verdad es q me cuesta mucho, pero no creas q no he investigado antes de preguntar, lo de los interfaces llevo unos meses tocandolos y sabiendo q me faltan cosas, en la documentación q he conseguido, no me parecía claro. La próxima vez, espero se más claro y quizás pasar un ejemplo completo de mi fallo. Bueno, pues he mirado mejor todo mi código y al final me ha funcionado (mas o menos), tenía una cosa mal y no lo había visto. Gracias por las molestias y un saludo. Última edición por OscarG fecha: 17-10-2005 a las 10:00:09. |
#6
|
|||
|
|||
Hola, roman,
(6) I meant that I could forget about something (5) Mix-in classes is particular case of the multiple ihneritance. When you don't want to use interface references, and don't need the automatic life time management, but want to add to your classes some different orthogonal functionalities. Mix-in interfaces allow make the interface of the base class compact.
|
|
|
|