Announcement

Collapse
No announcement yet.

Service Locator Programmieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Service Locator Programmieren

    Hi,

    ich muss einen Service Locator programmieren, der z.B. als ein Art User-Login-Service fungieren soll. Ich meine, der Vorgang des Logins (mit Benutzername und Passwort) soll über einen Service Locator laufen. Ich weiß leider nicht, wie man einen Service Locator programmiert. Kann jemand mir bitte dabei helfen? Im Internet habe ich nichts brauchbares gefunden.

    Danke im Voraus
    Zuletzt editiert von gfoidl; 05.12.2011, 16:16. Reason: Titel angepasst

  • #2
    Erster Treffer aus Google.

    Viel simpler läßt sich das nicht erklären. Falls dich verunsichert das das alles so knapp beschrieben ist. Nicht wundern. Es ist tatsächlich so simpel.

    Comment


    • #3
      Hallo Ralf,

      vielen Dank für deine Antwort. Das habe ich schon gesehen. Ich glaube nicht, dass so ein Dienst überhaupt für so etwas sinnvoll ist. Ich muss aber diesen im Rahmen eines Projekts realisieren. Ich habe eine Klasse Login, eine Interface ISLocator und Klasse SLocator. Muss ich nun in der Klasse SLocator einfach eine Instance von Login erzeugen und Zurückgeben oder muss noch etwas gemacht werdn?

      Gruß

      Comment


      • #4
        Wenn SLocator der Service Locator ist brauchst du ein ILogin Interface und eine Login Klasse das du im Service Locator registrierst. Im einfachsten Fall so wie im verlinkten Beispiel im Konstruktor des Service Locators oder z.B. über eine durch den Service Locator veröffentliche Methode zum registrieren eines Interface-Klassen Paars. Im folgenden kannst du dann über die GetService Methode mit ILogin eine konkrete Implementierung (hier Login) anfordern und benutzen.


        Ich glaube nicht, dass so ein Dienst überhaupt für so etwas sinnvoll ist
        Wenn du mehr als eine Implementierung eines Logins hast (einmal per Username-Passwort, alternativ per Geste oder fingerprintscanner etc.) dann wird es sinnvoll. Immer wenn man konfigurativ das Verhalten einer Anwendung ändern will ist ein Service Locator eine interessante Möglichkeit. Und auch in simpleren Fällen wie hier kann es Sinn machen da man gezwingen ist sauber immer nur gegen ein Interface zu programmieren anstatt gegen eine konkrete Klasse. Hilft gut isolierten Code (und damit wartbaren Code) zu erzeugen gerade dann wenn aus Erfahrungsmangel der Entwickler das nicht von selbst tun würde.

        Comment


        • #5
          Hallo Ralf,

          vielen herzlichen Dank für deine ausführliche Beschreibung.

          Gruß
          Zuletzt editiert von Smart; 06.12.2011, 09:27.

          Comment


          • #6
            Hi,

            eine Verständnis-Frage hätte ich noch.

            hier kann es Sinn machen da man gezwingen ist sauber immer nur gegen ein Interface zu programmieren anstatt gegen eine konkrete Klasse.
            Warum muss man eigentlich den Service Locator via Interface realisieren. Was ist da der Unterschied, wenn man eine Methode direkt über die Klasse aufruft und wenn man einen Umweg nimmt und diese über ein Inteface erledigt?

            Gruß

            Comment


            • #7
              Der ~Umweg~ über ein Interface hat den Vorteil das man die konkrete Implementierung nicht kennt/ kennen muss. Man programmiert dann immer nur gegen das Interface und hat die Chance die Implementierung beliebig auszutauschen ohne den Rest der Anwendung umprogrammieren zu müssen.
              Zu irgendeinem Zeitpunkt muß man aber das Interface mit einer konkreten Klasse unterfüttern und das macht man halt durch die verschiedenen Patterns aus der Fabric Ecke wie eben zum Beispiel das Service Locator Pattern.

              Comment


              • #8
                Kleine Anmerkung noch: Keine Klassen/Interfacenamen verwenden wie ISLocator oder SLocator. Schreib doch den Namen einfach aus, dann weiss auch jemand anders mal noch was das ist.

                Comment

                Working...
                X