реализовывает или либу юзает?
Зачем там либа? Ты экстендиться собрался?
Ну типо от дефолтного.
???
Какой ещё дефолтный, лол
Аргументируйте
Так свойство должно быть приватным.
Кто сказал?
Так оно не гарантирует целостность.
Какую целостность?
Я могу поменять значение свойства
Ну тогда ты идиот.
мы юзаем для ValueObject константы чтобы избежать прямого изменения. Константы публичные. Все ValueObject наследуются от абстрактного класса который собственно и реализует функционал. Дочерние классы только определяют набор значений который могут принимать
Как ты для телефона, мыла, uuid константы определишь?
Вот что я и имею в виду
Это только для ограниченных множеств значений возможно
а зачем тебе для этого ValueObject?
для этого я бы использовал DTO в паре с валидаторами, но не ValueObject точно
VO - это любые типизированные значения
Затем, что телефон для моего приложения имеет особое значение, это не строка.
ок понял
Я и не сомневался.
соглашусь, но это больше похоже просто на тип данных
https://martinfowler.com/bliki/ValueObject.html
Это уместно на входе в приложение, а не дальше. Дальше я хочу быть убеждён, что работаю не с тыквой, а с нормальными значениями.
снова соглашусь, но снова термин ValueObject здесь используется в другом контексте, что объект несет в себе значение с внутрими constraint. Я же больше вижу его в контексте Enum коллекции, которые конечно можно привести под одну абстракцию.
есть набор абстрактных классов типа StringValueObject для скаляров, несколько “туториальных” типа Money, где не хватает пишем с нуля
Обсуждают сегодня