继承问题 - 将派生类传递给基类

我需要在2个不同的'view'类中复制功能,唯一的区别在于由方向(字符串或bool)和int值确定的功能 .
因此,继承有助于避免代码重复 .

为简单起见,在我的基类 Animal 中,我有以下事件处理程序和两个派生类, DogViewCatView .

将“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;
}

回答(0)