Проблема наследования - передача производного класса в базовый класс - PullRequest
0 голосов
/ 09 мая 2018

Мне нужно продублировать функциональность в 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...