Мутация это хорошо. Вещи меняются

TL;DR: не меняйте основные атрибуты или поведение.

  1. Защитите основные атрибуты от изменений.

  2. Удалить сеттеры

Гераклит сказал:

«Ни один человек никогда не войдет в одну и ту же реку дважды. Потому что это не та река и он не тот человек.

Человек остается прежним по своей сути. Но его тело развивается.


Неправильный

const date = new Date();
date.setMonth(4);
Войти в полноэкранный режим

Выйти из полноэкранного режима


Верно

const date = new Date("2022-03-25");
Войти в полноэкранный режим

Выйти из полноэкранного режима

[X] Руководство

Это смысловой запах. Нам нужно смоделировать, какие атрибуты/поведения являются существенными, а какие случайными.

Нам нужно отдавать предпочтение неизменяемым объектам.

Объекты могут мутировать случайным образом, но не существенно.

Code Smells — это только мое мнение.

фото Ник Фьюингс на Скрыть


Изменения в дизайне программного обеспечения в конечном итоге будут означать «шаг вперед, два шага назад». Это неизбежно.

Салман Аршад


Эта статья является частью серии CodeSmell.