Hallo Forum,
ich schreibe ein System bei dem eine beliebige Anzahl von von Verarbeitungsinstanzen eine Nachricht verabeitet. Alle diese Verarbeiter implementieren ein Interface 'Processor' mit genau einer Methode 'processMessage( MyMessage msg)'. Da das System erweiterbar sein soll, möchte ich gern sicherstellen, dass das Nachrichten-Objekt und _alle_ seine Teile nicht verändert werden können.
Den Parameter final zu deklarieren, schützt IMHO schon mal vor der Erstellung eines neuen Objekts aber mehr auch nicht. Also müsste ich ein Kopie des Objektes machen und jedem Processor übergeben, aber die clone()-Methode macht ja auch nur eine "flache" Kopie. Ausserdem ist das ein Nachrichtenobjekt aus einem Framework, also nur mit viel Aufwand klonbar zu machen.
Hat jemand von euch eine Idee zur Lösung?
Grüße Eric
ich schreibe ein System bei dem eine beliebige Anzahl von von Verarbeitungsinstanzen eine Nachricht verabeitet. Alle diese Verarbeiter implementieren ein Interface 'Processor' mit genau einer Methode 'processMessage( MyMessage msg)'. Da das System erweiterbar sein soll, möchte ich gern sicherstellen, dass das Nachrichten-Objekt und _alle_ seine Teile nicht verändert werden können.
Den Parameter final zu deklarieren, schützt IMHO schon mal vor der Erstellung eines neuen Objekts aber mehr auch nicht. Also müsste ich ein Kopie des Objektes machen und jedem Processor übergeben, aber die clone()-Methode macht ja auch nur eine "flache" Kopie. Ausserdem ist das ein Nachrichtenobjekt aus einem Framework, also nur mit viel Aufwand klonbar zu machen.
Hat jemand von euch eine Idee zur Lösung?
Grüße Eric