Chain reaction или void

Рейтинг: 1Ответов: 1Опубликовано: 12.11.2014

Всем доброе время суток, вопрос касается больше стиля программирования, в гугле на эту тему ни бе, ни ме.

Что лучше использовать, "цепную реакцию" ("цепной вызов", не суть), или вызов функций по отдельности? Интересуют все точки зрения. Долго думал над тем, что, с одной стороны, вызов функций по отдельности облегчит отладку, особенно если в одной из функций баг, но с другой -- в плане юзабилити удобнее будет именно цепь.

Для примера рассмотрим класс, в котором есть две функции, каждая из которых (для примера) будет выводить сообщение на экран:

class C{
    void A { 
         MessageBox.Show("this is A function!"); 
    }
    void B {
        MessageBox.Show("this is B function!"); 
    }
}

Соответственно, я могу откуда-то извне вызвать функции:

 C.A();
 C.B();

Второй вариант -- изменить возвращаемый тип каждой функции, вместо void прописав С, и добавив в конце return this;, что приведет к вызову извне уже в другой форме:

 C.A().B();

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

Весь код приведен для примера, считаем, что он верный (видимость, подключаемые нэймспэйсы и т.п. -- считаем, что всё это есть, и прописано правильно).

Ответы

▲ 1

Chain reaction обычно используется в Builder-ах, есть такой термин даже как Fluent API, мне кажется лучше просто void за исключением классов конфигов, примером может служить EntityTypeConfiguration из EntityFrmawork-а