Size: a a a

Software Design/Architecture/Zen

2021 November 23

SP

Stanislav Popov in Software Design/Architecture/Zen
он помечает этим классом видимо что обьект реализует Eq
источник

E

Emanresun in Software Design/Architecture/Zen
просто видимо правила сериализации одинаковые можно в одно место запихнуть
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
но видимо по принципу матрешки
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
хотя у него оно получилось всеядное
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
ну, переопределить == через сравнение полей через рефлексию и никогда не писать eq в наследниках явно
> можно и лучше сделать, но в целом и так норм
источник

E

Emanresun in Software Design/Architecture/Zen
ну он говорит, вот эти все мои миллион типов VO могут делать .equals
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
return JSON.stringify(this.props) === JSON.stringify(vo.props);
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Здорово, зачем?
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
эти ваши гарантии порядка полей
источник

E

Emanresun in Software Design/Architecture/Zen
что бы реализовать единственный обязательный метод для vo?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Зачем им всем equals
источник

SP

Stanislav Popov in Software Design/Architecture/Zen
душа хотела devire, а получила жс
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Вот честно довольно редко во надо между собой сравнивать
источник

E

Emanresun in Software Design/Architecture/Zen
ну класс называется VO, единственное что там ему можно добавить это проверку с другим VO 🤷‍♂️
источник

E

Emanresun in Software Design/Architecture/Zen
может где-то юзает хз
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
> это должно было быть нечто вроде
abstract class ValueObject<T extends ValueObjectProps> {
 public equals (vo?: ValueObject<T>) : boolean {
   if (vo === null || vo === undefined) {
     return false;
   }
   if (vo === undefined) {
     return false;
   }
   return deepEqual(this, vo);
 }
}
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Да просто не нужен этот метод
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Вообще
источник

E

Emanresun in Software Design/Architecture/Zen
разница это deepEqual?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Он просто хотел так продемонстрировать что мол можно по значению сравнивать
источник