yo soy un novato en los patrones de diseño y aquí está mi preguntapregunta patrón
si tenemos una clase abstracta con pocas clases que implementan y cada una de estas clases tiene diferentes atributos.
ahora tengo otra (clase Manager) que contiene una matriz de la clase abstracta y quiero poner un método de búsqueda en ella ... ¿cómo puedo hacer que sin poner a las clases concretas?
Tengo 2 ideas:
Primera Uno: la adición de un nivel extra de interfaces que va con el código para no interactuar (es decir, en lugar de fundición a clase concreta i se echo a una interfaz.) aplicación regla ... pero de esta manera cuando agrego otra clase voy a tener que hacer una interfaz para ella y que también tendrá que editar el gerente (cliente), que tampoco parece muy bueno.
Segunda solución: que se vea un tanto extraña y aún necesita mejoras, pero su objetivo principal es hacer que el administrador o cualquier otro cliente trabaja con clase abstracta sin saber cualquier cosa sobre que se extiende o sus atributos.
la solutin es tan folows: cada nuevo elemento añadido tendrá que overide una interfaz que hace cumplir para generar una ULA completa de sus campos, por ejemplo, un objeto coche tendrán que volver un mapa hash tener la
folowingcampo: {FieldType, ValorDelCampo}
ejemplo
- modelo: {texto, "ford"}
- manifactureDate: {Date "12/01/89"}
y cada objeto tendrá también para poner en práctica un método llamado compareFields que tienen un mapa de hash como este y compararlo con su campo y devolver verdadero o falso.
ahora de esta manera he resuelto muchos problemas -por la interfaz gráfica de usuario que sólo tendrán que hacer un motor de visualización de este HashMap que puede mostrar cualquier artículo sin tener que saber lo que su tipo. (De nuevo la interfaz gráfica de usuario es otro cliente de la clase abstracta)
-para la búsqueda puedo conseguir un mapa hash que contiene los campos que el usuario entra en en el formulario de búsqueda y lazo en los elementos abstractos e invocar al comparar fieldmethod
todavía no cómo manejará el objeto complejo (que tiene otro objeto como sus atributos)
no sé qué tipo de patrón es esto .. es sólo una idea que lo pensaba.
EDIT: ejemplo concreto
si tengo una clase de elemento abstracto con un coche y autobús y barco que lo implementa ,, y cada una de estas clases tiene diferentes atributos .... cómo puede un gerente para la búsqueda de gestor de tráfico de ejemplo para un determinado elemento utilizando la clase abstracta sin poner al coche o autobús ... realmente lo siento por la pregunta larga
¿Huh? Estoy confundido. Qué idioma estás usando? –
No importa qué idioma use. Los patrones de diseño no les importa si pueden implementarse en la mayoría de los idiomas. – JonH
estoy de acuerdo con jonH ,,, pero de cualquier manera podría usar java –