Все становятся такие умные и с умным видом говорят «в этом классе не хватает закрывающей скобочки» думая про себя «какой я умный, а тот кто написал комментарий лох и нуб» вместо того что бы подумать на шаг вперед ;)
DetachedCriteria — это класс фреймворка. Враппить его в другой класс и делать тучу методов оберток ради того, что бы ОДИН раз использовать — не понятно, есть ли в этом большой смысл. Я конечно понимаю, что многие девелоперы стремятся к совершенству, совершенному коду и т.д. и т.п., Но как известно на другой стороне — девелоперы любят УСЛОЖНЯТЬ. А потом получаются очень сложные системы, дорогие в поддержке, и т.д. и т.п. И это называется Overengineering. Это как рассказ о том, что американцы вложили миллионы долларов на то, что бы создать ручку, которая будет писать в космосе в то время, как русские просто взяли карандаш.
Одно дело написание какого-то сверхгибкого фреймворка и декларативное программирование, другое дело использование его без надобности. Это что называется очень часто «write-only» подход. Если у тебя обвешан объект проксями и т.п, а ты пытаешься на прямую ему филды посеттить которые помечены как private. Ну зачем это через отражение делать. Что бы потом отлавливать баги там, где 99% населения их не отлавливает?
И кстати то, что я описал — это НЕ тупое копирвоание свойств из одного объекта в другой. Это приведение объекта в нужное состояние. Через отражение это сделать можно. Но зачем усложнять и без того сложные вещи? Это как забивать гвозди микроскопом — не удобно, не практично и поломкоопасно.
if (itemTypeId != null) criteria.add(sqlRestriction("{alias}.item_type_fk = ?", itemTypeId, BIG_INTEGER));
и тем самым тоже сэкономлю строчку кода.
К тому же типы аргументов будут разными, соотвественно проверки нужные тоже разные. И т.д. и т.п. В общем из простого но не очень компактного кода получатся макароны, которые сложнее читать.
Короче ко всему стоит подходить с головой.
Я видел такие просты решения через reflection. Вообще отражение — это зло, которое должно использоваться В ИСКЛЮЧИТЕЛЬНЫХ случаях. Написать просто, а вот поддерживать очень сложно. Мне приходилось через такой код построенный на «отражениях» продираться НЕДЕЛЮ. Пока не нашел причину. Когда я ее нашел, я подошел с красными глазами к товарищу, кто это написал и спросил «зачем?» на что получил ответ старый как мир: «так было проще».
где здесь копипаст? Ткните конкретно. А что хорошего в add_critera_if. С тем же успехом можно было бы выкинуть скобочки и заинлайнить. Проку с этого мало, если он вообще есть.
Конфигурировать как? Очень похоже на наколенную студенческую поделку с изобретением велосипеда. Если кому и надо будет такое, то это делается за 2 минуты путем враппинга slf4j/log4j/logback или что у вас там используется
Ко всему нужно подходить со здоровой долей прагматизма и включенной головой. А не «я буду использовать это потому, что я прочитал это в такой-то книге от такого-то клевого автора».
Сегодня каждый второй причисляет себя к айтишнику. Так что объективизма вряд ли удастся добиться. Да и основная проблема айтишников в том, что жизнь она пробегает мимо, пока мы сидим уткнувшись мордой в мониторы/книжки и проч и проч. По крайней мере это моя проблема.
Как мне поможет «еще одна» социальная сеть, которая либо сразу загнется из-за наплыва ИТшников и в лучшем случае малого количества представительниц прекрасного пола, либо заполнится представительницами древнейшей профессии. В общем идея на мой взгляд гиблая.
Все становятся такие умные и с умным видом говорят «в этом классе не хватает закрывающей скобочки» думая про себя «какой я умный, а тот кто написал комментарий лох и нуб» вместо того что бы подумать на шаг вперед ;)
И кстати то, что я описал — это НЕ тупое копирвоание свойств из одного объекта в другой. Это приведение объекта в нужное состояние. Через отражение это сделать можно. Но зачем усложнять и без того сложные вещи? Это как забивать гвозди микроскопом — не удобно, не практично и поломкоопасно.
и тем самым тоже сэкономлю строчку кода.
К тому же типы аргументов будут разными, соотвественно проверки нужные тоже разные. И т.д. и т.п. В общем из простого но не очень компактного кода получатся макароны, которые сложнее читать.
Короче ко всему стоит подходить с головой.
Отрефакторите мне этот метод таким образом, что бы это реально принесло смысл. Я серьезно. Я долго бился над этой проблемой, но решения не нашел:
Как мне поможет «еще одна» социальная сеть, которая либо сразу загнется из-за наплыва ИТшников и в лучшем случае малого количества представительниц прекрасного пола, либо заполнится представительницами древнейшей профессии. В общем идея на мой взгляд гиблая.