Кто-то может указать на основные отличия между двумя?
Кажется, что по крайней мере концептуально эти два очень тесно связаны. Если бы я должен был рисковать предположением, то я сказал бы, что публиковать/подписывать метод является подмножеством шаблона посредника (так как посредник не должен обязательно использоваться публиковать/подписывать способом, но последний, кажется, требует своего рода объекта посредника). Это в какой-либо степени близко к нему?
Я бы описал разницу в том, что в посреднике вас, вероятно, волнует, получит ли сообщение конечное приложение. Таким образом, вы используете это, чтобы гарантировать, кто получает сообщение. В то время как с pub / sub вы просто публикуете свое сообщение. Если есть подписчики, они его получат, но вам все равно.
Согласно на этой странице , модель публикации-подписки является реализацией шаблона посредника.
Edit
Я должен отметить, что шаблоны проектирования называются «шаблонами» именно потому, что между каждой реализацией будут различия. Это не столько набор установленных канонических форм, сколько набор наблюдений за тем, как люди уже пишут программное обеспечение. Так что на самом деле нет никакого способа «строго» придерживаться дизайна дизайна.