скалогрыз писал(а):Придётся каждый класс дублировать
Нет. Классы реализации интерфейсов поддерживают наследование, вслед за наследуемыми интерфейсами. Или мне было непонятно, о чем Вы говорите.
скалогрыз писал(а):они нужнее когда либо... либо...
Ну не, это не полный список. Пресловутый полиморфизм, который в этой ветке пытаются реализовать в виде {$IFDEF WINDOWS}/{$IFDEF UNIX}, красивее выглядит именно на них.
Mikhail писал(а):а не изменения иначе это жуткое нарушение принципа абстракции
Всегда думал что в программировании абстракция применяется к отношению код-задача, а не как подход к развитию кодовой базы.
Mikhail писал(а):Вообще, при реализации через интерфейсы есть только один недостаток - более низкая производительность.
Не настолько более, чтоб с этой потерей считаться. Вообще, у проектов на интерфейсах есть более впечатляющий недостаток - сложность отладки. А сложность в том, что при работе с классами в коде порядок наследования прямо отражен в объявлении класса. А вот когда один и тот-же интерфейс может быть взять из самых интересных объектов, то тут уже не всегда без отладчика можно понять что и как может/должно работать.
Именно из-за сложности отладки стараюсь избегать их в своих проектах. Как показывает практика действительная нужда в них - большая редкость.
Добавлено спустя 2 минуты 10 секунд:Mirage писал(а):и привязки к подсчету ссылок, который редко когда нужен.
Его можно легко перекрыть.