Przygody z oprogramowaniem
  • Start
  • Szkolenia
    • Szkolenia otwarte
    • Katalog szkoleń
  • Usługi
    • Konsulting
    • Mentoring
    • Research & Development
  • Blog
  • Wiedza
    • Strefa wiedzy
    • BFsharp
    • SaaS
  • Klienci
  • Kontakt
0

EventBroker w JavaScript

15 April, 2013-Blog, JavaScript, Wzorce

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ę.

Czytaj dalej | Dyskutuj
0

Dlaczego singleton jest zły?

18 January, 2013-Wzorce

Singleton jest jednym z dobrze znanych i często stosowanych antywzorców. Zacznijmy od razu od poniższego przykładu:

public class OrderProcessor
{
    public void Process(Order order)
    {
        // Validate
        // Do some work
        if ( Settings.Instance.ShouldLog )
            Logger.Instance.Log("Order id=5 processed successfully");
    }
}

Jeśli mielibyśmy napisać unit test, to jak to zrobić?
Jak wytestować w izolacji klasę procesora?

Można sobie wyobrazić, że ustawienia czytają jakiś plik z dysku, a logger zapisuje.
Jest bardzo trudno zestawić łatwo i szybko takie środowisko. Jeśli tak będzie to szybko przestanie nam się chcieć pisać testy.

Więcej na ten i powiązane tematy można znaleźć w najnowszym artykule w Programiście. Polecam.

Programista

Czytaj dalej | Dyskutuj

Kategorie

Architecture BFsharp Blog Business Framework C# CqRS DDD Debugging DSL EntityFramework Formula JavaScript Linq NHibernate SaaS Silverlight SQL Visual Studio WPF Wzorce

O mnie


RSS Feed

© macmichal.pl 2011 Wszystkie prawa zastrzeżone

Używamy ciasteczek, jeśli kontynuujesz zwiedzanie strony, zakładamy, że wyrażasz zgodę na ich używanie.RozumiemCzytaj więcej