Когда отправляется действие, состояние другого редуктора удаляется. Зачем?

Это S из SOLID : Единая ответственность.

thread олицетворяет текущий контекст (как в контексте выполнения: стек стека, идентификатор потока и т. д.) асинхронного выполнения части код. То, что кусок кода в идеале должен быть одной и той же реализацией, будь то синхронный или асинхронный .

Если вы объедините их вместе в одна реализация, вы даете результирующему объекту две несвязанные причины изменения:

  1. обработка потоков в вашем приложении (т. е. запрос и изменение контекста выполнения)
  2. Алгоритм
  3. , реализованный частью кода (runnable part)

Если используемый вами язык поддерживает частичные классы или множественное наследование, вы можете разделить каждую причину в своем собственном суперклассе, но это сводится к тому же, что и составление двух объектов, поскольку их наборы функций не перекрываются. Это для теории.

На практике, вообще говоря, программе не нужно выполнять больше сложностей, чем необходимо. Если у вас есть один поток, работающий над конкретной задачей, без изменения этой задачи, вероятно, нет смысла делать задачи отдельными классами, а ваш код будет проще.

В контексте Java , поскольку средство уже существует, возможно, легче начать прямо с самостоятельных классов Runnable и передать свои экземпляры в Thread (или Executor) экземпляров. Как только использовал для этого шаблона, его труднее использовать (или даже читать), чем простой исполняемый поток.

0
задан Tugrul Bayrak 28 March 2019 в 20:48
поделиться