Наследование и свойства перечисления в модели предметной области

У меня на работе была дискуссия о том, что «Наследование в модели предметной области усложняет жизнь разработчикам». Я - объектно-ориентированный программист, поэтому я начал искать аргументы в пользу того, что наличие наследования в модели предметной области на самом деле облегчит жизнь разработчика, вместо того, чтобы переключаться повсюду.

Я бы хотел увидеть следующее:

class Animal {

}

class Cat : Animal {

}

class Dog : Animal {

}

другой коллега говорит:

public enum AnimalType {
    Unknown,
    Cat,
    Dog
}

public class Animal {

    public AnimalType Type { get; set; }

}

Как мне убедить его (ссылки ДОБРО ПОЖАЛОВАТЬ ), что иерархия классов лучше, чем наличие свойства enum для такого рода ситуаций?

Спасибо!

36
задан Daniel Severin 23 November 2010 в 09:50
поделиться