Да)) в довершение ко всему меня интересует наследование.
Простейший пример. Есть какой-то шаблонный клас юнита. От него наследуются все остальные юниты. Если делать "Как обычно" - то получится что-то вроде:
А если делать чтоб всё по правильно-мвцшному, то видимо что-то примерно такое?:

Ну не без того что к примеру каких-то две модели у нас окажутся идентичными, то получится "сэкономить" на классах (хотя тут уже впору будет задуматься, а стоило ли разбивать на разные классы вместо того чтобы сделать одну триаду "юнит", а в нем просто unit.type = (1 || 2 || 3) ).
Я прав насчет второй диаграммы?
З.Ы. Пунктир - "наследует"; Стрелка с ромбиком - "Содержит в себе".