Является ли хорошей практикой написание методов, возвращающих void?

Я работаю над сложным корпоративным приложением, написанным на языке 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, мне трудно отладить, чтобы понять поток, а модульное тестирование стало для меня кошмаром.

Итак, теперь у меня сложилось впечатление, что всегда лучше писать функции, которые что-то возвращают, особенно когда задействована цепочка действий . Итак, это безопасная презумпция? Я хотел бы узнать ваше мнение по этому поводу. Поправьте меня, если я ошибаюсь.

10
задан Vamsi Emani 29 January 2018 в 05:47
поделиться