« Also einen habe ich noch gefunden | Main| 20 nicht 42 :-( »

Heute wird nicht geproggert, sondern gepatternt :-D

9
Kategorie  
Also heute ist es soweit, will mal wieder ein bisserl an meinen Skills arbeiten. Aus diesem Grunde möchte ich heute mal ein Strategy- und ein Factory-Pattern implementieren.
Bevor ich jetzt alle langweile einfach den Code anschauen!
Damit ich halt mit Java ein bisserl in Übung bleibe, mach ich mal Java.
Aber ich denke der Code ist nicht so schwer zu verstehen, so dass es auch .NET Spezialisten ihn lesen können!
//Hier das Interface für das Strategy
public interface MessageStrategy {
   public void sendMessage();
}

//Hier definiere ich einfach mal die Basis für die Abstract-Factory, sollte wohl kein Geheimnis sein
public abstract class AbstractStrategyFactory {
   public abstract MessageStrategy createStrategy(MessageBody mb);
}

// Hier definiere ich mal den Message-Body, der später dann irgendwann durch die Strategy ausgegeben werden soll.
public class MessageBody {
   Object payload;
   public Object getPayload() {
       return payload;
   }
   public void configure(Object obj) {
       payload = obj;
   }

    // Hier das Strategy!!!
   public void send(MessageStrategy ms) {
       ms.sendMessage();
   }
}

//Hier definiere ich jetzt mal die konkrete Factory, damit ich was von der Abstract-Factory habe
public class DefaultFactory extends AbstractStrategyFactory {
   private DefaultFactory() {;}
   static DefaultFactory instance;
   public static AbstractStrategyFactory getInstance() {
       if (instance==null) instance = new DefaultFactory();
       return instance;
   }

   public MessageStrategy createStrategy(final MessageBody mb) {
       return new MessageStrategy() {
           MessageBody body = mb;
           public void sendMessage() {
               Object obj = body.getPayload();
               System.out.println((String)obj);
           }
      };
   }
}

//So und nun lange Rede kurzer Sinn, jetzt wird alles zusammen geworfen und SCHÖN!!!
public class Program {
   public static void main(String[] args) {
       MessageBody mb = new MessageBody();
       mb.configure("Hello World!");
       AbstractStrategyFactory asf = DefaultFactory.getInstance();
       MessageStrategy strategy = asf.createStrategy(mb);
       mb.send(strategy);
   }
}


Also mir gefällt es!!!!!

Die Frage ist nur ob ein
public class Program {
   public static void main(String[] args) {
       System.out.println("Hello World!!!");
   }
}

nicht den gleichen Effekt hat

Gruß JJR

Mach einen Kommentar

:-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