elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Herencia
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Herencia  (Leído 4,083 veces)
alzehimer_cerebral


Desconectado Desconectado

Mensajes: 513



Ver Perfil WWW
Herencia
« en: 20 Abril 2010, 23:37 pm »

Hola a todos,

estoy trabajando en un programa y me surgen unas dudas sobre la herencia, os cuento:

tengo una clase Plugin con los atributos comunes a todos los plugins y otra clase DriverPlugin que extiende dicha clase, la clase DriverPlugin contempla atributos que solo los tienesn ciertos plugins en concreto...

Clase Plugin:

Código
  1. protected String pluginType=null;
  2.    protected String pluginName=null;
  3.    protected String pluginBaseClass=null;
  4.    protected String pluginVersion=null;
  5.    protected String pluginShortDescription=null;
  6.    protected String pluginImage=null;
  7.    protected String pluginPath=null;
  8.  
  9.  

Clase DriverPlugin:

Código
  1.  private String[] avaibleExtensions;
  2.  

Luego tengo otra clase que es Repository en la cual quiero tener un metodo que comprueba si existe un cierto Plugin en el repositorio...

Mi duda es si dicho metodo lo declaro de la siguiente manera:

Código
  1. public Boolean existsPlugin(Plugin plug)
  2.  

1. -Podria pasarle un DriverPlugin tambien no???
2. -Si tengo un vector con ambos tipos de Plugins... Podria hacer:

Código
  1. Plugin aux = (Plugin) this.pluginVector.get(i);
  2.  

Donde i puede ser un DriverPlugin..

3. Nunca podria guardar en una variable DriverPlugin un tipo Plugin con cast a DriverPlugin verdad??

Lo que asumo es por las pruebas que he hecho hasta el momento, pero me gustaria confirmacion para fijar los conocimientos.

Espero vuestros comentarios.

Un saludo.

alzehimer_cerebral


En línea

Servicios Informaticos Valencia - www.ag-solutions.es
Mi blog - www.alvarogarciasolano.com
sapito169


Desconectado Desconectado

Mensajes: 629



Ver Perfil
Re: Herencia
« Respuesta #1 en: 21 Abril 2010, 00:59 am »

1. -Podria pasarle un DriverPlugin tambien no???
si le puedes pasar una variable driver plugin es  logico por que un driver plugin es un plugin
2.- si
3 no necesitas cast


En línea

alzehimer_cerebral


Desconectado Desconectado

Mensajes: 513



Ver Perfil WWW
Re: Herencia
« Respuesta #2 en: 21 Abril 2010, 01:45 am »

Y a un metodo que se le pasa un DriverPlugin no le puedo pasar un Plugin no?? Pero con un cast a DriverPlugin si podria verdad??

Gracias por la aclaracion.

Saludos.

alzehimer_cerebral
En línea

Servicios Informaticos Valencia - www.ag-solutions.es
Mi blog - www.alvarogarciasolano.com
sapito169


Desconectado Desconectado

Mensajes: 629



Ver Perfil
Re: Herencia
« Respuesta #3 en: 21 Abril 2010, 02:19 am »

y por que tu no lo pruevas que no es facil porvarlo tu mismo

usa el sentido comun si a un metodo que pide driver plugin le pasas plugin lo mas probable es que cuando el metodo use el plugin le falte metodos del driver plugin esa es la razon por la que no se puede talves salga casteando pero esta ves pruevalo tu mismo

una recomendacion para que no te agas volas as que tus metodos reciban solo interfases y las que son mas viejas las papas del papa del papa de esta forma puedes elegir la implementacion que te guste mas esta es una de las uan excelente practica ase que tu programa sea super desacoplada y ase posible cambiar la implementacion que mas te guste ademas ase asta posible la injecion de dependencias

recuerda as clases que de preferencias reciban interfaces y las que no son hijas de nadie ademas as clases abstractas que implementen de las interfases y que hagan todas las operaciones que se puedan hacer sobre esa interfases y finalmente hereda la de las clases abstractas la implementacion poniendote en los casos mas particulares

si trabajas de esta forma todas tus clases van a tener un monton de metodos muy utiles y no vas a tener que hacer los mismos metodos para cada implementacion en particular

lee el api de java y entiende como travaja lee la documentacion oficial
En línea

sapito169


Desconectado Desconectado

Mensajes: 629



Ver Perfil
Re: Herencia
« Respuesta #4 en: 21 Abril 2010, 02:26 am »

un ejemplo de esto seri asi

tableModel interfase para representar el modelo de una tabla

abstractablemodel implementa table model y ademas maneja los eventos si yo hubiera echo el api le pondria un monton de metodos para por ejemplo voltear la tabla cambiar de posicion las columnas y todoas las cosas que se me ocurran cosa que lla no lo aria por cada implementacion de esta

el defaultablemodel representa la tabla hereda de abstractablemodel y presenta un modelo para trabajar con tablas en forma general
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
vector dinamico - herencia
Programación C/C++
littlero 2 3,484 Último mensaje 7 Diciembre 2010, 05:25 am
por littlero
Pregunta sobre herencia en SmallTalk
Programación General
astinx 0 2,634 Último mensaje 20 Febrero 2012, 22:32 pm
por astinx
Herencia
Java
m@o_614 6 4,821 Último mensaje 20 Abril 2012, 00:46 am
por m@o_614
herencia
Programación C/C++
cazagavilan 2 2,360 Último mensaje 23 Abril 2012, 19:14 pm
por cazagavilan
HERENCIA
Java
ALBUR 2 2,278 Último mensaje 7 Mayo 2012, 10:26 am
por ALBUR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines