Open rmezaa opened 3 months ago
No tienes que crear una interfaz IUnit
propia. Eso no funciona porque IUnit
ya está implementado dentro de la librería Fire_Emplem_GUI
. Y los métodos de la librería reciben cualquier objeto que implemente el IUnit
de Fire_Emplem_GUI
. No funcionará con un IUnit
creado por ti.
Lo que hay que hacer es tener alguna clase que implemente IUnit
y pasar ese objeto a la librería. Ese objeto, llamémoslo GuiUnit
, puede estar en el proyecto vista y ser construido a partir de un Unit
o podría estar en el modelo y que tu Unit
implemente el IUnit
directo. Esto es válido. No genera dependencias circulares porque no requiere importar el proyecto FireEmblemView
. Lo que requiere es que el modelo también tenga una referencia a la librería Fire_Emplem_GUI
.
¿Qué es más fácil? No sé. Yo encuentro más fácil tener un GuiUnit
dentro de la vista. Pero puede que a ti te salga más fácil importar Fire_Emplem_GUI
en el modelo y que tu Unit
de siempre implemente el Fire_Emplem_GUI.IUnit
. Para hacer eso, también tienes que seguir estos pasos (aunque la carpeta GuiLib basta con que esté en el proyecto FireEmblemView
... no es necesario copiar y pegarla en los otros proyectos):
Perfect! Gracias profe
Hola! Tengo un par de dudas con respecto a IUnit y como se aplica en la interfaz gráfica. Empecé a implementarla, y lo que había hecho era implementar la Interfaz IUnit en mis modelos, para poder pasárselos a la GUI. Al intentar usar los métodos de FireEmblemWindow, me decía que ya existía IUnit en la librería de Fire_Emblem_Gui, y la FireEmblemWindow solo aceptaba ese tipo de IUnit.
Al final se espera que la clase auxiliar que se muestra en el ejemplo del enunciado y código, MyUnit que hereda de IUnit, sean solamente parte de la vista, que se creen ahí y solo sea para mostrar información?