Я ничего не имею против вашей конструкции, но мне кажется, что в этом случае выигрыш в читаемости может быть достигнут просто путем вставки разрывов строк, т.е.
if (person.getAge() > MINIMUM_AGE
&& person.getTall() > MAXIMUM_SIZE
&& person.getWeight < MAXIMUM_WEIGHT)
{
// do something
}
Большая проблема, которую поднимают другие ответы, заключается в том, относится ли это к объекту Person. Я думаю, что простой ответ на этот вопрос таков: если есть несколько мест, где вы проводите один и тот же тест, это относится к человеку. Если есть места, где вы проводите похожие, но разные тесты, они принадлежат к вызывающему классу.
Например, если это система для сайта, который продает алкоголь, и у вас есть много мест, где вы должны проверить, является ли человек законным пьющим возрастом, тогда имеет смысл иметь функцию Person.isLegalDrinkingAge (). Если единственным фактором является возраст, то наличие константы MINIMUM_DRINKING_AGE может привести к тому же результату, я полагаю, но как только будет задействована другая логика, например разные возрасты употребления алкоголя в разных юрисдикциях или особые случаи или исключения, тогда это действительно должно быть функция-член.
С другой стороны, если у вас есть одно место, где вы проверяете, кто старше 18 лет, и где-то еще, где вы проверяете, не старше ли он 12 лет, и где-то еще, где вы проверяете, старше 65 лет и т. Д., То мало что можно получить. нажав эту функцию в Person.