у Пола Хара есть интересных предложений , таких как:
Не подклассифицировать конкретные классы
(прочитайте оригинал, я не хочу копировать и вставлять все; -).
Пол пишет о Java, но я обнаружил, что, по крайней мере, эта часть его совета применима к большинству задач проектирования ОО (хотя прагматично, я все еще иногда отклоняюсь от нее в кодировании , он жив и здоров в моем design ;-), даже когда я собираюсь реализовать его на C ++, Python или чем-то еще. Если после прочтения рассуждений Пола вы согласитесь с ним, в будущем вы будете использовать намного больше абстрактных классов (чтобы разрешить создание подклассов; -).