Мне нужно продублировать функциональность в 2 разных классах 'view', с единственной разницей в функциональности, определяемой направлением (string или bool) и значением int.
Таким образом, наследование имеет смысл, чтобы избежать дублирования кода.
Для простоты в моем базовом классе Animal
у меня есть следующий обработчик событий и два 2 производных класса, DogView
и CatView
.
Каков «лучший» способ передачи «DogView» и «CatView» в этот базовый класс, чтобы они были видимы этим обработчиком событий? (и, возможно, «dogPrefab» и «catPrefab»)
Я хочу избежать переопределения этого обработчика, так как есть другие подобные обработчики событий, и я буду дублировать большинство базового класса, следовательно, в первую очередь победив причину наследования.
bool MyEventHandler(IEvent evt)
{
Event_Enter castEvent = evt as Event_Enter;
if (castEvent != null)
{
Vector3 newPos = new Vector3(0,-1.1f, 0);
GameObject ob = (GameObject)Instantiate(dogPrefab, newPos, Quaternion.identity);
DogView animal = ob.GetComponent<DogView>();
animal._id = castEvent.id;
}
return false;
}