« Sharepoint 2010 -> Mobile Web Sites ausschalten | Main| Generic Strategy Selector »

Wenn ein Strategy auf ein Singelton trifft .....

8
Category  
Was hat ein Strategy Pattern mit einem Singelton zu tun .....

Eigentlich nichts ...
Aber es kann sein, dass in einem Projekt ein Tech Lead auf die Idee kommt, dass die Anzahl der zu erzeugenden Projekte reduziert werden soll.

OK, also schaut er im Code, ob irgendwo ein Strategy Pattern implementiert ist, welches durch Klassen die keinen State haben realisiert ist.

Warum, denn wenn ein Strategy Selector existiert, der ungefähr so implementiert ist ->
public static IMyStrategy GetStrategyFor(string classification)
{
  if (classification.Equals(Thing1))
  {
    return new Strategy1();
  }
  else
  {
    return new GenericStrategy();
  }
}

dann kann man die Erzeugung von Objekten sparen, durch folgende Implementation ->

// probably hidden and in the same package as the code which converts some input
// into the strategy object to use
internal class Strategy1 : IMyStrategy
{
   // singleton instance - evaluated when first needed
   private static Strategy1 instance = new Strategy1();
   // hide the constructor to avoid people making spare ones
   private Strategy1() {}
   // provide instance getter for Singleton access
   public Strategy1 Instance { get { return instance; } }
   // implementation of IMyStrategy follows
}

public static IMyStrategy GetStrategyFor(string classification)
{
  if (classification.Equals(Thing1))
  {
    return Strategy1.Instance;
  }
  else
  {
    return GenericStrategy.Instance;
  }
}

Mein Hinweis, dass der Strategy Selector entscheiden sollte, ob er immer die selbe Instanz zurückreicht oder nicht, wurde philosophisch weg diskutiert ....

Meines Erachtens, sollte nach Seperation of Concerns oder evtl. auch Single Reponsibility die Entscheidung, wie die Strategy erzeugt und im Memory verwaltet wird näher am Selector.

Greetings JJR

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Amazon


Impressum

Firmenname: Peanuts-Soft
Straße Nummer: Biinger Strasse 8
PLZ Ort: 55263 Wackernheim
Telefon: +491772134526
E-Mail: joerg.reck @ peanuts-soft.de
Disclaimer: Peanuts-Soft übernimmt keine Garantie dafür, dass die auf dieser Website bereitgestellten Informationen vollständig, richtig und stets aktuell sind. Dies gilt auch für alle Links, auf die verwiesen wird. Peanuts-Soft ist für die Inhalte, auf die per Link verwiesen wird, nicht verantwortlich. Peanuts-Soft haftet nicht für konkrete, mittelbare und unmittelbare Schäden oder Schäden, die durch fehlende Nutzungsmöglichkeiten, Datenverluste oder entgangene Gewinne – sei es aufgrund der Nichteinhaltung vertraglicher Verpflichtungen, durch Fahrlässigkeit oder eine andere unerlaubte Handlung – im Zusammenhang mit der Nutzung von Dokumenten oder Informationen bzw. der Erbringung von Dienstleistungen entstehen, die auf dieser Web Site zugänglich sind.
Datenschutz: Inhalt und Gestaltung der Internetseiten sind urheberrechtlich geschützt. Eine Vervielfältigung der Seiten oder deren Inhalte bedarf der vorherigen schriftlichen Zustimmung von Peanuts-Soft.


Locations of visitors to this page

Powered By

Domino BlogSphere
Version 3.0.2