LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

Всё это спорно. Даже в «классических» ООП-языках все советуют по возможности заменять наследование агрегированием

Нужно понимать, когда нужно применить агрегирование, а когда наследование. Фраза «предпочтите композицию наследованию» - отнюдь не означает пихать это по поводу и без.

От перегрузки операторов вообще вреда больше, чем пользы: она бьёт по читаемости.

Опять... Читаемость определяется не фактом наличия перегрузки операторов. Читаемость или ее отсутствие - это комплексный результат. Например если мы имеем проверку на равенство двух объектов, то ты оспоришь, что вариант с перегрузкой оператора == проще?:


if (someObjeckFirst.isEqual(someObjectSecond))

if (someObjectFirst == someObjectSecond)

Исходная версия rumgot, :

Всё это спорно. Даже в «классических» ООП-языках все советуют по возможности заменять наследование агрегированием

Нужно понимать, когда нужно применить агрегирование, а когда наследование. Фраза «предпочтите композицию наследованию» - отнюдь не означает пихать это по поводу и без.

От перегрузки операторов вообще вреда больше, чем пользы: она бьёт по читаемости.

Опять... Читаемость определяется не фактом наличия перегрузки операторов. Читаемость или ее отсутствие - это комплексный результат. Например если мы имеем проверку на равенство двух объектов, то ты оспоришь, что вариант с перегрузкой оператора == проще:


if (someObjeckFirst.isEqual(someObjectSecond))

if (someObjectFirst == someObjectSecond)