Я работаю над сложным корпоративным приложением, написанным на языке java, которое управляется сложными композициями объектов.. Например, :В конкретном сценарии выполнение действия — это поток:
login() ->
Followed by defined sequence of 10 to 20 method calls in different classes ->
Followed by a logout()
В структуре почти все действия, включая вход в систему, выход из системы и многие из 10–20 вызовов методов, не имеют возвращаемых типов. Любое ошибочное поведение обрабатывается фреймворком. Скажем, в логине
public void login(){
try{
//login actions
//chained sequence of calls
}catch(){
// framework handling exceptions and other rollback options
}
}
Промежуточные 10-20 действий — это вызовы методов для разных объектов на разных уровнях иерархии фреймворка.
Случайный класс будет выглядеть так:
class someobject{
def variable
void action1(){ do something on variable }
void action2(){ do something on variable }
...
}
Переменная часто меняет состояние, и эти действия имеют последовательность, определяемую только фреймворком, что меня очень раздражает.
Я бы сказал: возможно, если бы вообще существовали подходящие возвращаемые типы или хотя бы некоторые из этих методов, как, скажем, логическое значение в случае login()
, жизнь была бы намного проще. Из-за этой жесткой приверженности ряду функций, возвращающих void, мне трудно отладить, чтобы понять поток, а модульное тестирование стало для меня кошмаром.
Итак, теперь у меня сложилось впечатление, что всегда лучше писать функции, которые что-то возвращают, особенно когда задействована цепочка действий . Итак, это безопасная презумпция? Я хотел бы узнать ваше мнение по этому поводу. Поправьте меня, если я ошибаюсь.