Теперь это всего лишь мысль, но я думаю, что методы с именами, такими как empty?
, предполагают, что какая-то проверка должна выполняться внутри объекта или класса (в зависимости от контекста).Эта проверка или оценка означает, что действие должно быть выполнено.В целом, поскольку мы запрашиваем (таким образом, ?
) объект для некоторого состояния, это означает, что существует вероятность того, что состояние объекта может изменяться в течение жизненного цикла приложения.Переменная может быть устаревшей, но ?
-метод (проверка) будет выполнен в определенный момент, предоставляя, таким образом, актуальную информацию о каком-либо состоянии, которая может быть представлена в логической форме.
Поэтому я хотел бы думать, что это ограничение дизайна, предоставленное архитектором (Matz) для реализации более логичного, близкого к реальному, подхода к кодированию.