unir 2 versiones en 1
Tengo el siguiente problema: Estoy trabajando con distintas propuestas de handover para un sistema de comunicaciones.
Esas distintas propuestas corresponden a diferentes versiones de una clase (MobileStation1, MobileStation2).
A su vez, todos los móviles son controlados desde la clase Network a través de un vector de objetos (Mobile)de una clase que ahora estaría por determinar ( MobileStation1 ó MobileStation2).
Quiero que la red (Network)me cree móviles de clase MobileStation1 ó MobileStation2 según me indique el usuario a través de un parámetro (MS_type).
La única manera que se me ocurre es definir 2 vectores de clase diferente en la clase Network y cada vez que invoque a cualquier objeto del vector llamar a uno u a otro a través de una estructura if/else.
¿Alquien tiene una idea más eficaz?
GRacias mil!!!
Esas distintas propuestas corresponden a diferentes versiones de una clase (MobileStation1, MobileStation2).
A su vez, todos los móviles son controlados desde la clase Network a través de un vector de objetos (Mobile)de una clase que ahora estaría por determinar ( MobileStation1 ó MobileStation2).
Quiero que la red (Network)me cree móviles de clase MobileStation1 ó MobileStation2 según me indique el usuario a través de un parámetro (MS_type).
La única manera que se me ocurre es definir 2 vectores de clase diferente en la clase Network y cada vez que invoque a cualquier objeto del vector llamar a uno u a otro a través de una estructura if/else.
¿Alquien tiene una idea más eficaz?
GRacias mil!!!
Pues si que era un problema de moviles... :)
La solucion qe se me ocurre es utilizando herencia de clases. Tendrias que crear una clase "MobileStation" que implemente las caracteristicas comunes de 1 y de 2. Luego tienes que derivar de esta las MS1 y MS2, donde pondras las cosas particulares de cada clase. Ahora, lo del vector tienes que cambiarlo, que en vez de ser un array de objetos sea un array de punteros (ya que a priori no conoces el tipo de objeto que va a ser. Si lo defines como array de punteros a objetos "MobileStation" despues te permite asignar punteros que apunten a MS1 o MS2. A la clase "MobileStation" le tienes que crear los metodos que quieras particularizar en las MS1 y MS2 dejandolos como virtual; despues los implementas en las clases hijas y cuando invoque el metodo de la clase padre se ejecutara el de la hija correspondiente. No se si es mucho lio, porque tienes que crear y destruir los objetos (new y delete) y todo eso, pero si quieres tenerlo unificado en un solo vector es asi
La solucion qe se me ocurre es utilizando herencia de clases. Tendrias que crear una clase "MobileStation" que implemente las caracteristicas comunes de 1 y de 2. Luego tienes que derivar de esta las MS1 y MS2, donde pondras las cosas particulares de cada clase. Ahora, lo del vector tienes que cambiarlo, que en vez de ser un array de objetos sea un array de punteros (ya que a priori no conoces el tipo de objeto que va a ser. Si lo defines como array de punteros a objetos "MobileStation" despues te permite asignar punteros que apunten a MS1 o MS2. A la clase "MobileStation" le tienes que crear los metodos que quieras particularizar en las MS1 y MS2 dejandolos como virtual; despues los implementas en las clases hijas y cuando invoque el metodo de la clase padre se ejecutara el de la hija correspondiente. No se si es mucho lio, porque tienes que crear y destruir los objetos (new y delete) y todo eso, pero si quieres tenerlo unificado en un solo vector es asi
