История изменений
Исправление rumgot, (текущая версия) :
Всё это спорно. Даже в «классических» ООП-языках все советуют по возможности заменять наследование агрегированием
Нужно понимать, когда нужно применить агрегирование, а когда наследование. Фраза «предпочтите композицию наследованию» - отнюдь не означает пихать это по поводу и без.
От перегрузки операторов вообще вреда больше, чем пользы: она бьёт по читаемости.
Опять... Читаемость определяется не фактом наличия перегрузки операторов. Читаемость или ее отсутствие - это комплексный результат. Например если мы имеем проверку на равенство двух объектов, то ты оспоришь, что вариант с перегрузкой оператора == проще?:
if (someObjeckFirst.isEqual(someObjectSecond))
if (someObjectFirst == someObjectSecond)
Исходная версия rumgot, :
Всё это спорно. Даже в «классических» ООП-языках все советуют по возможности заменять наследование агрегированием
Нужно понимать, когда нужно применить агрегирование, а когда наследование. Фраза «предпочтите композицию наследованию» - отнюдь не означает пихать это по поводу и без.
От перегрузки операторов вообще вреда больше, чем пользы: она бьёт по читаемости.
Опять... Читаемость определяется не фактом наличия перегрузки операторов. Читаемость или ее отсутствие - это комплексный результат. Например если мы имеем проверку на равенство двух объектов, то ты оспоришь, что вариант с перегрузкой оператора == проще:
if (someObjeckFirst.isEqual(someObjectSecond))
if (someObjectFirst == someObjectSecond)