- 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
wvxvw 03.07.2013 23:39 # +3
madhead 04.07.2013 00:06 # +1
santa_microbe 04.07.2013 12:33 # +2
Мне бы было лень столько проверок писать, проще исключение обработать
Lure Of Chaos 04.07.2013 00:10 # +1
а вдруг объект станет нуллом между проверками?
madhead 04.07.2013 00:13 # 0
Lure Of Chaos 04.07.2013 00:14 # +3
Sh1tM4ker 04.07.2013 09:06 # +3
Fatality!
madhead 04.07.2013 09:40 # 0
tir 04.07.2013 09:21 # 0
response.getResponseObject().getReservat ion().getRate().getRoom().setBedType(val ue)
вот такие цепочки действительно ГК
guest 05.07.2013 13:46 # 0
tir 05.07.2013 15:06 # +1
Если имеем такие цепочки, то скорее всего:
- архитектура не продумана
- присутствует высокая связанность в системе
- код тяжело сопровождать и рефакторить.
П. С. Если кому интересно могу привести многобуквенный пример с иллюстрацией, почему это плохо.
guest 05.07.2013 15:19 # 0
tir 05.07.2013 15:29 # +1
Допустим, необходимо получить показания счетчиков на ул. Ленина, д. 1, кв. 1
При вышеописанной архитектуре это будет выглядеть примерно так:
бабушка
.выйдиВоДвор
.сядьНаТроллейбус
.проедь2Остановки
.перейдиДорогу
.найдиДом.зайдиВНего
.найдиСчетчик.перепишиПоказания
.вернисьОбратно.скажиМне
Другими словами, бухгалтер руководит тем, как бабушке достать необходимые данные. Бухгалтер зависит от этой конкретной бабушки с ее умениями и навыками.
roman-kashitsyn 05.07.2013 15:35 # 0
бабка.выйдиВоДвор()
бабка.сядьНаТроллейбус()
бабка.проедьДоОстановки("ул. Ленина")
бабка.перейдиДорогу()
бабка.найдиДом()
бабка.войдиВДом()
бабка.перепишиПоказания()
показания = бабка.нуЧтоТамНасмотрела()
tir 05.07.2013 15:36 # 0
roman-kashitsyn 05.07.2013 15:38 # 0
tir 05.07.2013 15:35 # 0
Теперь работа бухгалтера сводится к:
бабушка.раздобудьПоказанияСчетчика(адрес )
Профит! Бухгалтеру теперь глубоко плевать как бабушка будет доставать эти показания. Для бухгалтера важны только показания, и она ничего не хочет знать о способе их получения. Теперь бухгалтер может работать практически с любой бабушкой (например, с бабушкой-телепатом). И пусть теперь бабушка сама решает как ей доставать показания.
Как-то так.
tir 05.07.2013 15:38 # 0
return показанияЕсть.аЕслиНайду?
}
guest 05.07.2013 21:53 # +1
tir 06.07.2013 10:47 # +1
В данном примере это просто нарушение инкапсуляции. Кто-то под инкапсуляцией понимает только то, что не надо делать public поля. Это не совсем верно. Если у вас на все private поля есть public геттер, то о инкапсуляции приходить не приходится. Вы просто завернули кишки в целофан и выставили их наружу.
Классический пример: добавление ребенка в коллекцию родителя. Наиболее частая реализация:
Даже этот пример можно считать нарушением инкапсуляции, т. к. вы решаете, как родитель должен добавлять себе детей. Правильнее было бы:
Такое решение дает один весомый плюс: родитель полностью контролирует добавление ребенка.
eth0 06.07.2013 17:42 # +2
А вот ИРЛ получается не у всех.
guest 06.07.2013 18:04 # +2
roman-kashitsyn 05.07.2013 15:21 # 0
guest 06.07.2013 15:31 # 0
По сути - struct, а геттеры т.к. ява не может в свойства, а прямой доступ давать не надо.
krypt 04.07.2013 16:44 # 0
А то за условиями настоящего гк не видно.
madhead 04.07.2013 16:45 # 0
guest 05.07.2013 08:52 # −2
null != ....
krypt 05.07.2013 11:01 # 0
Вы случаем не разработчик jslint, который выбрасывает на эту конструкцию ошибку вместо предупреждения, причём не отключаемую?
SmackMyBitchUp 14.07.2013 01:00 # 0
bormand 05.07.2013 11:42 # +1
guest 05.07.2013 12:03 # −1
bormand 05.07.2013 12:15 # 0
= вместо ==: https://ideone.com/gHoHhC
Вот только так можно запороть: https://ideone.com/m60J5N
Но с true и false никто на == сравнивать никто не будет, поэтому пример явно надуманный.
Итого: спутать == и = в жабе практически нереально, и йода стайл для == не нужен. А для != - тем более, вы что-ли боитесь ! потерять в нем? ;)
P.S. Да и в сишке\крестах тоже лет 10 как не нужен, если читать ворнинги.
guest 05.07.2013 13:48 # 0
bormand 05.07.2013 14:05 # 0
3.14159265 05.07.2013 15:45 # +1
>>кроме как с жабьим equals
Да прими наконец темную светлую сторону, не мучайся.
В динамических js и пхп актуально по сей день.
Stertor 11.07.2013 18:30 # 0
js - рулон туалетной бумаги
guest 12.07.2013 17:17 # 0
guest 12.07.2013 17:53 # −2
Нет уж, пусть лучше стоит.
guest 12.07.2013 17:56 # −2
inkanus_gray 08.11.2018 02:25 # 0
guest8 08.11.2018 03:14 # −999
anonimb84a2f6fd141 12.07.2013 19:26 # 0
Так вроде бы российских немцев называют?
Zewa_Deluxe 08.11.2018 01:40 # −1
inkanus_gray 08.11.2018 02:31 # 0
guest8 08.11.2018 02:44 # −999