Re[5]: Антипаттерн, противоположный Primitive Obsession
От: vsb Казахстан  
Дата: 19.03.23 03:56
Оценка:
Здравствуйте, Sinclair, Вы писали:

TB>>А как этот долбаный фанатик собирается писать банальную задачу "прибавить к позиции шахматной фигуры смещение и проверить валидность результата"? Ведь согласно его идеям позиция шахматной фигуры должна иметь тип [0..8), а смещение должно иметь тип [-7 ..7], и складывать их нельзя, и любая попытка скастить одно к другому вызовет исключение в некоторых случаях.

TB>>То есть он предлагает что-то типа

TB>>
TB>>try_cast_or_throw<Position>((position as int) + (offset as int))
TB>>

TB>>?
S>Не знаю, что там Волшин, а в нормальных языках и библиотеках оператор + просто определяется для (position, offset)->position и (offset, offset)->offset.
S>Зачем городить преобразования туда-обратно мне решительно непонятно. Задача отличается от алгебры поверх DateTime / TimeSpan исключительно дополнительными ограничениями на диапазон валидных значений.

И как предлагается этим пользоваться? На каждый чих писать отдельный тип с кучей операторов? Ещё тип для смещений этого типа. Не очень понятно. Звучит как маразм или я что-то не понимаю.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.