Pull to refresh
9
0
Николайчук Иван @NikchukIvan

Java Developer

Send message
Сложно что — либо возразить — пример действительно не очень удачный.
Спасибо за ваш комментарий, вы правы.
> Не знаю, почему у вас sell возвращает остаток денег в кошельке

Вы говорите о первом примере, который является примером того, как делать не нужно. Второй (более корректный пример) взаимодействует только с деньгами и возвращает сдачу.

> Обычно при продаже формируется чек
> Где у вас защита от race condition?

Цель этой статьи — показать пользу от применения закона в отдельно взятом, выдуманном случае. Этот случай недостаточно реален для того, чтобы он ровно в таком же виде возник у вас на проекте, но достаточно реален для того, чтобы из него можно было сделать какие-то выводы.

Я не ставил перед собой цели писать thread-safe пример, т.к. лишние строчки обработки race-condition'ов отвлекали бы читателя от основной мысли, которую я хотел донести. Я считаю, что это допустимо в рамках примера, хотя, возможно, следовало упомянуть об этом в начале статьи.
Если методу sell для продажи понадобился Wallet, то с дизайном всё же не очень хорошо. Если вы считаете, что существует ситуация, при которой sell должен знать о Wallet, и это хороший дизайн, пожалуйста, приведите конкретный пример, и тогда я смогу ответить.
Если метод sell требует Wallet — это проблема дизайна.
Зависимость от Wallet в методе sell — это как раз то, от чего мы пытались уйти.
Метод нужен для осуществления продажи и должен зависеть от денег, но никак не от хранилища денег.
Это опечатка, спасибо что нашли её — исправил)
Согласен, но почему вы решили, что он mutable?

У класса нет методов, меняющих его внутреннее состояние, а методы вроде subtract задуманы возвращать новый объект Money (результат вычисления).

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity