Why Many Return Statements Are a Bad Idea in OOP

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Этот дебат очень старый, но у меня тоже есть что сказать. Вопрос заключается в том, может ли метод иметь несколько операторов return или всегда только один. Ответ может вас удивить: в чисто объектно-ориентированном мире метод должен иметь один оператор return и ничего больше. Да, только оператор return и все. Никаких других операторов или выражений. Только return. Все аргументы в пользу нескольких операторов return противоречат самой идее объектно-ориентированного программирования.

Это классический пример:

Код выше содержит два оператора return и он короче, чем этот с одним оператором return.

Более подробный, менее читаемый и медленный, верно? Верно.

Это код в чистом объектно-ориентированном мире:

Что вы думаете сейчас? Здесь нет никаких операторов и выражений. Нет if и нет >. Вместо этого есть объекты класса If и GreaterThan.

Это чистый и ясный объектно-ориентированный подход.

Однако в Java этого нет. Java (и многие другие псевдо ООП-языки) предоставляет нам операторы, такие как if, else, switch, for, while и другие, вместо встроенных классов, которые могли бы делать то же самое. Из-за этого мы продолжаем думать в терминах процедур и продолжаем говорить о том, лучше ли два оператора return или один.

Если ваш код действительно объектно-ориентированный, у вас не будет более одного оператора return. Более того, в каждом методе у вас будет только оператор return, ничего больше. Фактически, во всем программном обеспечении будут только два оператора - new и return. Вот и все.

Пока мы не достигнем этого, давайте придерживаться только одного оператора return и по крайней мере попытаемся выглядеть как чистый ООП.

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 14:03

sixnines availability badge   GitHub stars