Почему мы иногда предпочитаем иметь структуры данных над объектами? - PullRequest
0 голосов
/ 03 ноября 2018

Как сказал Чистый код Роберта Мартина :

объекты скрывают их данные за абстракциями и раскрывают функции, которые оперируют этими данными. Структура данных выставлять свои данные и не иметь значимых функций.

Но он также упомянул, что:

Процедурный код (код с использованием структур данных) позволяет легко добавлять новые функции без изменение существующих структур данных. Код OO, с другой стороны, позволяет легко добавлять новые классы без изменения существующих функций.

и

... Такие гибриды затрудняют добавление новых функций, но также затрудняют добавление новых данных. структур. Они худшие из обоих миров. Избегайте их создания.

Гибрид выше означает гибрид между структурой данных и объектами.

Но, похоже, существует конфликт для структуры данных: плюсы в использовании структуры данных в том, чтобы упростить добавление функций, но для структуры данных нам лучше никогда не добавлять в нее функции. Тогда какой смысл иметь структуру данных? Например. DTO (объект передачи данных) является одним из примеров использования структуры данных вместо использования объектов. И всегда полезно не добавлять в него много логики. - Но почему?

1 Ответ

0 голосов
/ 03 ноября 2018

Вы неправильно понимаете, что сказал дядя Боб.

плюсы использования структуры данных для более легкого добавления функций

Нет, так и должно быть: плюсы разделения структур данных и функций - упрощение добавления функций.

Когда структуры данных и функции разделены, вы можете добавить новую функцию, не нарушая старые функции. Напротив, когда структуры данных и функции объединяются в блоки, подобные классам в ООП, добавление новой функции (метода) разрушит все старые блоки / классы.

...