Сообщение Re[13]: Об очередном антипаттерне. Модель акторов. от 26.08.2015 7:37
Изменено 26.08.2015 7:39 so5team
Здравствуйте, LaPerouse, Вы писали:
LP>Actor:
LP>
Может быть вовсе и не так. А вот так:
Т.е. обслуживание конечного автомата актора является одной из задач фреймворка, реализующего Actor Model. То, что в Akka/Scala этого нет не означает ущербности ActorModel.
LP>Actor:
LP>
LP>if (state == 1) {
LP> fsmState = WAIT_FOR_RESPONSE1;
LP> call(request1);
LP>}
LP>else if (state == 2) {
LP> fsmState = WAIT_FOR_RESPONSE2;
LP> call(request2);
LP>}
LP>//Обработка
LP>void messageReceived(Response response) {
LP> if (fsmState == WAIT_FOR_RESPONSE1)
LP> calc1(response);
LP> else if (fsmState == WAIT_FOR_RESPONSE2)
LP> calc2(response);
LP> else if (fsmState == NO_REQUEST)//здесь сообщение Response пришло без Request
LP> processEvent(response);
LP>}
LP>
Может быть вовсе и не так. А вот так:
// Описание связей.
fsmState.in(WAIT_FOR_RESPONSE).event(calc1);
fsmState.in(WAIT_FOR_RESPONSE).event(calc2);
fsmState.in(NO_REQUEST).event(processEvent);
Т.е. обслуживание конечного автомата актора является одной из задач фреймворка, реализующего Actor Model. То, что в Akka/Scala этого нет не означает ущербности ActorModel.
Re[13]: Об очередном антипаттерне. Модель акторов.
Здравствуйте, LaPerouse, Вы писали:
LP>Actor:
LP>
Может быть вовсе и не так. А вот так:
Т.е. обслуживание конечного автомата актора является одной из задач фреймворка, реализующего Actor Model. То, что в Akka/Scala этого нет не означает ущербности ActorModel.
LP>Actor:
LP>
LP>if (state == 1) {
LP> fsmState = WAIT_FOR_RESPONSE1;
LP> call(request1);
LP>}
LP>else if (state == 2) {
LP> fsmState = WAIT_FOR_RESPONSE2;
LP> call(request2);
LP>}
LP>//Обработка
LP>void messageReceived(Response response) {
LP> if (fsmState == WAIT_FOR_RESPONSE1)
LP> calc1(response);
LP> else if (fsmState == WAIT_FOR_RESPONSE2)
LP> calc2(response);
LP> else if (fsmState == NO_REQUEST)//здесь сообщение Response пришло без Request
LP> processEvent(response);
LP>}
LP>
Может быть вовсе и не так. А вот так:
// Описание связей.
fsmState.in(WAIT_FOR_RESPONSE1).event(calc1);
fsmState.in(WAIT_FOR_RESPONSE2).event(calc2);
fsmState.in(NO_REQUEST).event(processEvent);
Т.е. обслуживание конечного автомата актора является одной из задач фреймворка, реализующего Actor Model. То, что в Akka/Scala этого нет не означает ущербности ActorModel.