Объединение - это просто еще один асинхронный шаблон, но он не заменяет очереди операций (или очереди отправки). Так же, как GCD и рабочие очереди успешно сосуществуют в наших базах кода, так и с Combine.
GCD отлично подходит для простого в написании, но все же высокопроизводительного кода для отправки задач в различные очереди. Так что, если у вас есть что-то, что может блокировать основной поток, GCD действительно очень просто отправить это в фоновый поток, а затем отправить некоторый блок завершения обратно в основной поток. Он также обрабатывает таймеры в фоновых потоках, синхронизации данных, высокооптимизированный распараллеленный код и т. Д.
Очереди работы отлично подходят для задач более высокого уровня (особенно тех, которые сами по себе являются асинхронными). Вы можете взять эти части работы, обернуть их в отдельные объекты (для хорошего разделения обязанностей), и очереди операций управляют выполнением, отменой и ограниченным параллелизмом, довольно элегантно.
Объединяет сияние при написании краткого, декларативного, компонуемого, асинхронного кода обработки событий. Это превосходно при написании кода, который описывает, как, например, пользовательский интерфейс должен отражать какое-то событие (сетевая задача, уведомление, даже обновления пользовательского интерфейса).
Это явно упрощение, но это лишь некоторые из сильных сторон различных структур. И, безусловно, в этих трех рамках есть определенное совпадение, но у каждого есть свое место.