- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
if ( response == null || request == null ) {
return;
}
if ( request.getHeader() != null
&& request.getHeader().getChannel() != null
&& request.getHeader().getChannel().getSubChannel() != null
&& request.getHeader().getChannel().getSubChannel().getSubChannel() != null
&& request.getHeader().getChannel().getSubChannel().getSubChannel().getName() != null
&& !request.getHeader()
.getChannel()
.getSubChannel()
.getSubChannel()
.getName()
.equalsIgnoreCase( "XXX" ) ) {
if ( response.getResponseObject() != null
&& response.getResponseObject().getReservation() != null
&& response.getResponseObject().getReservation().getRate() != null
&& response.getResponseObject().getReservation().getRate().getRoom() != null
&& response.getResponseObject()
.getReservation()
.getRate()
.getRoom()
.getBedType() != null ) {
response.getResponseObject()
.getReservation()
.getRate()
.getRoom()
.setBedType( null );
}
}
Индус. Спасибо что два if'a
Мне бы было лень столько проверок писать, проще исключение обработать
а вдруг объект станет нуллом между проверками?
Fatality!
response.getResponseObject().getReservat ion().getRate().getRoom().setBedType(val ue)
вот такие цепочки действительно ГК
Если имеем такие цепочки, то скорее всего:
- архитектура не продумана
- присутствует высокая связанность в системе
- код тяжело сопровождать и рефакторить.
П. С. Если кому интересно могу привести многобуквенный пример с иллюстрацией, почему это плохо.
Допустим, необходимо получить показания счетчиков на ул. Ленина, д. 1, кв. 1
При вышеописанной архитектуре это будет выглядеть примерно так:
бабушка
.выйдиВоДвор
.сядьНаТроллейбус
.проедь2Остановки
.перейдиДорогу
.найдиДом.зайдиВНего
.найдиСчетчик.перепишиПоказания
.вернисьОбратно.скажиМне
Другими словами, бухгалтер руководит тем, как бабушке достать необходимые данные. Бухгалтер зависит от этой конкретной бабушки с ее умениями и навыками.
бабка.выйдиВоДвор()
бабка.сядьНаТроллейбус()
бабка.проедьДоОстановки("ул. Ленина")
бабка.перейдиДорогу()
бабка.найдиДом()
бабка.войдиВДом()
бабка.перепишиПоказания()
показания = бабка.нуЧтоТамНасмотрела()
Теперь работа бухгалтера сводится к:
бабушка.раздобудьПоказанияСчетчика(адрес )
Профит! Бухгалтеру теперь глубоко плевать как бабушка будет доставать эти показания. Для бухгалтера важны только показания, и она ничего не хочет знать о способе их получения. Теперь бухгалтер может работать практически с любой бабушкой (например, с бабушкой-телепатом). И пусть теперь бабушка сама решает как ей доставать показания.
Как-то так.
return показанияЕсть.аЕслиНайду?
}
В данном примере это просто нарушение инкапсуляции. Кто-то под инкапсуляцией понимает только то, что не надо делать public поля. Это не совсем верно. Если у вас на все private поля есть public геттер, то о инкапсуляции приходить не приходится. Вы просто завернули кишки в целофан и выставили их наружу.
Классический пример: добавление ребенка в коллекцию родителя. Наиболее частая реализация:
Даже этот пример можно считать нарушением инкапсуляции, т. к. вы решаете, как родитель должен добавлять себе детей. Правильнее было бы:
Такое решение дает один весомый плюс: родитель полностью контролирует добавление ребенка.
А вот ИРЛ получается не у всех.
По сути - struct, а геттеры т.к. ява не может в свойства, а прямой доступ давать не надо.
А то за условиями настоящего гк не видно.
null != ....
Вы случаем не разработчик jslint, который выбрасывает на эту конструкцию ошибку вместо предупреждения, причём не отключаемую?
= вместо ==: https://ideone.com/gHoHhC
Вот только так можно запороть: https://ideone.com/m60J5N
Но с true и false никто на == сравнивать никто не будет, поэтому пример явно надуманный.
Итого: спутать == и = в жабе практически нереально, и йода стайл для == не нужен. А для != - тем более, вы что-ли боитесь ! потерять в нем? ;)
P.S. Да и в сишке\крестах тоже лет 10 как не нужен, если читать ворнинги.
>>кроме как с жабьим equals
Да прими наконец темную светлую сторону, не мучайся.
В динамических js и пхп актуально по сей день.
js - рулон туалетной бумаги
Нет уж, пусть лучше стоит.
Так вроде бы российских немцев называют?