Re[4]: Антипаттерн, противоположный Primitive Obsession
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.03.23 14:58
Оценка: +3
Здравствуйте, T4r4sB, Вы писали:

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

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

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

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