EventBroker w JavaScript
Wyobraźmy sobie kompozytowy ekran, na którym widnieje lista dostępnych do kupna produktów. Użytkownik po dodaniu jednego z nich do koszyka dostanie informację o wykonanej akcji (np. animowana notyfikacja), a w innym miejscu interfejsu komponent wyświetlający stan koszyka zostanie odświeżony.
Powyższy scenariusz można rozwiązać z użyciem wzorca EventBroker (więcej w najnowszym numerze programisty).
Implementacja wspomnianego wzorca w JS jest bardzo krótka i prosta.
function EventBroker() { var self = this; self.list = []; this.subscribe = function(event, handler) { if (!self.list[event]) self.list[event] = []; self.list[event].push(handler); } this.publish = function(event, data) { if (self.list[event]) { for( var n in self.list[event] ) { self.list[event][n](data); } } }; }
Publikator (fasada odpalająca akcje dodaj) publikuje zdarzenie, a subskrybent (widget koszyka) na nie oczekuje i odświeża swój stan.
Przykład można znaleźć tutaj. Otwórz źródło strony, by zobaczyć szczegóły implementacji i interakcję.