> -- Info21 писал(а):
> Непонятно.
Рассмотрим пример Files.File - ABSTRACT тип, который требует реализации.
1. Есть реализация для Windows - HostFiles.File.
2. Есть реализация для Linux - тот же HostFiles.File. Как она сделана? Скопирована реализация для Windows, а потом платформо-зависимый код, отмеченный цветом, изменен А.Ширяевым и др. для Linux. Но остальной код реализации - дублируется, а такого кода очень много.

С дублированием кода в ООП (Фаулер) предлагается бороться рефакторингом. Скажем, возможно было бы создавать (в HostFiles или где-то еще) EXTENSIBLE File реализацию, складывать туда дублируемый код, а платформо-зависимое сводить (в HostFiles) LinFile = RECORD (File)... END.