Design Pattern für zwei abhängige Klassen

shadow

Aktives Mitglied
Hallo,

ich habe eine Anforderung, in der zwei Klassen sehr stark voneinander abhängen.
Eine direkten Verweis von jeweils der einen Klasse auf die andere möchte ich jedoch vermeiden. Ich würde gerne der einen Klasse nur ein Interface der anderen Klasse zur Verfügung stellen.

Gibt es für diesen Anwendungsfall ein Design Pattern?

Vielen Dank im Vorraus!
Stefan
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
ich habe eine Anforderung, in der zwei Klassen sehr stark voneinander abhängen.
DI wird da imho nicht reichen..

Es geht wohl um eine bidirektionale Abhängigkeit, welche in eine unidirektionale umgebaut werden soll mithilfe eines Observers (-Patterns).
 

ARadauer

Top Contributor
Wenn du kein DI einsetzen willst würd ich auf den ersten Blick Mediator sagen... zwei Objekte sollen nicht miteinander... dann muss ein Vermittler her...
 

shadow

Aktives Mitglied
Wow, vielen Dank für die Beiträge!

Vielleicht wäre es gut, wenn ich meinen Anwendungsfall genauer schildern würde:
Konkret geht es um ein Spiel, in dem es verschiedene Level gibt. Diese Level sind aus verschiedenen Gründen hart in die Software einprogrammiert.

Vereinfacht gibt es also eine "Game"-Klasse und mehrere Level-Klassen "Level1", "Level2", usw. und bisher ein Interface "Level". Ein Level hat beispielsweise die Kontrolle darüber, wann neue Gegner auftauchen...

Java:
public class Game {
   private Level currentLevel;
   private List<Enemy> enemies;

   public void newEnemy() {
     enemies.add(new Enemy());
   }

}

public interface Level {
}

public class Level1 implements Level {
}

public class Level2 implements Level {
}

Die Abstraktion der verschieden Levels habe ich schon über das Interface "Level".
Jetzt möchte ich auch vermeiden, dass "Level1" und "Level2" eine Referenz auf "Game" halten müssen, um die Methode "newEnemy()" aufzurufen. Instinktiv hätte ich nun nur ein Interface von "Game" in die Levels gereicht.

Java:
public class Game implements PassendesPattern {
   private Level currentLevel;
   private List<Enemy> enemies;

   public void newEnemy() {
     enemies.add(new Enemy());
   }

}

public interface Level {
  public void doSomething();
}

public class Level1 implements Level {
  PassendesPattern pattern;

  public void doSomething() {
    pattern.newEnemy();
  }

}

public class Level2 implements Level {
  PassendesPattern pattern;

  public void doSomething() {
    pattern.newEnemy();
  }

}


Dazu suche ich jetzt ein Pattern... Ich dachte auch schon an ein Delegate, das ist allerdings unüblich gegen ein Interface ("Level"), oder?

Danke im Vorraus!
 

Antoras

Top Contributor
Das sieht doch eher nach einem Observer-/Listener-Pattern aus. Das Pattern findest du z.B. in MVC wieder, wie hier gezeigt. MVC kannst du auch gut benutzen um die einzelnen Ebenen des Spiels zu abstrahieren, wobei du im Model wohl noch mal einen Observer einbauen kannst um zwischen den einzelnen Levels zu abstrahieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Design Pattern für einen simple Rechenmaschine Softwareentwicklung 18
M Visito/Besucher Design-Pattern/Strukturmuster Softwareentwicklung 4
H2SO3- design pattern: code in model classes Softwareentwicklung 5
G Design Pattern gesucht! Softwareentwicklung 4
D Design Pattern Softwareentwicklung 6
B Design Patterns und die Keywords Softwareentwicklung 22
P Zwei Fragen zum Design Softwareentwicklung 16
K Einlesen einer .dat-Datei (verschiedene Formate) | Entwicklung unter Einsatz von Design-Patterns Softwareentwicklung 0
L Design Patterns zu abstraktem Problem Softwareentwicklung 2
M Sauberes Design, Clean Code, etc. pp. Softwareentwicklung 47
G Projekte die Design by Contract verwendet haben?? Softwareentwicklung 2
C Wiki für ein Uni - High Level Design Softwareentwicklung 5
V Design Patters - Observer Softwareentwicklung 6
Jay_030 Checkstyle: Lösungsvorschläge für Design for Extension Softwareentwicklung 7
J Design Patterns in Programm hineinfließen lassen Softwareentwicklung 23
G Suche Programm für Masken Design für Pflichtenheft Softwareentwicklung 5
W Frage zu a)Innere Klassen und b)OO Design Softwareentwicklung 13
D Datenbank-Design Softwareentwicklung 3
M Datei-Typ-Design Softwareentwicklung 10
S Design-Frage: Wie viele Fassaden? Softwareentwicklung 4
G Test First <-> Design First Softwareentwicklung 6
B Haskell pattern matching in if else Anweisung umschreiben Softwareentwicklung 3
E Frage zu Dekorator-Pattern Softwareentwicklung 2
slawaweis Factory-Builder Pattern? Softwareentwicklung 6
B konfigurierbare Objekte - Singelton und Factory Pattern Softwareentwicklung 3
C Flyweight-Pattern verhält sich unerwartet Softwareentwicklung 5
U Decorator Pattern in der Java API Softwareentwicklung 6
M Proxy Pattern - Verständnisfrage Softwareentwicklung 2
0 Unklarheiten beim State Pattern Softwareentwicklung 2
N Composite pattern Softwareentwicklung 2
N Pattern Softwareentwicklung 2
L Builder Pattern Softwareentwicklung 6
1 Factory-Pattern: Bitte um Tipps zur Anwendung Softwareentwicklung 3
L Pattern Softwareentwicklung 3
J DAO Pattern bei komplexen Datenbankzugriffen Softwareentwicklung 2
M IllegalStateException - Problem mit GUI und Observer pattern Softwareentwicklung 4
G Pattern für Datenbank Anwendung Softwareentwicklung 22
A Iterato-Pattern und Innere Klassen Softwareentwicklung 9
F Unterschied Command und Strategy pattern Softwareentwicklung 4
F Wann Observer Pattern nehmen und Vorteile davon? Softwareentwicklung 5
H Frage ueber Prototype Pattern? Softwareentwicklung 2
G Warum/Wann mehrere Modells beim MVC-Pattern verwenden ? Softwareentwicklung 7
timomeinen DAO Pattern - Relationen mit DTO abbilden Softwareentwicklung 9
D Singleton pattern Softwareentwicklung 19
M decoration pattern Softwareentwicklung 2
M Plugins entwickeln für ein CMS welches unter der GPL V3 steht Softwareentwicklung 1
I Datenbankschema für Versionierung der Tabellen Softwareentwicklung 9
R Datenstruktur für einen rätselhaften Namen Softwareentwicklung 10
Rahim Post Conditions für InsertAt und remove Softwareentwicklung 1
P Thema für meine Projektarbeit die etwas mit Webautomatisierung zu tuen haben soll? Softwareentwicklung 1
H Entwurfsmuster für den Client der Rest API Softwareentwicklung 0
D Welche Technologien für App und web? Softwareentwicklung 3
Thallius oAuth2 und ClientCredentials für API sinnvoll? Softwareentwicklung 3
S Welche Programmiersprache für eine 3D-Software? Softwareentwicklung 6
N Technologie Grundlagen für eine "App" Softwareentwicklung 12
OnDemand Welches Tool für Planung Softwareentwicklung 2
B Sprache für 3D Physics Engine? Softwareentwicklung 3
K Maßnahmen für Softwarequalität Softwareentwicklung 2
N Graphenalgorithmen: Best Practice für Knoten-/Kanten-Attribute Softwareentwicklung 5
Z Analysemuster - Welches nehme ich für diese Problem? Softwareentwicklung 0
L Softwareentwicklung für Embedded Systems Softwareentwicklung 1
T Gibt es eine Software die Texte für Skype automartisch (automassage) sendet ? Softwareentwicklung 4
R Online-Plattform für Essensbestellungen mit der momentanen Bestellverfolgung Softwareentwicklung 1
S Suche: (Versionierungs)Tool für Klassenaustausch mit Kollegen, die auch an dem Projekt arbeiten Softwareentwicklung 5
R UML-Diagramm für mehrere JFrames Softwareentwicklung 0
S Algorithmus für perfekte Kombination Softwareentwicklung 2
U Individualsoftware - eine Gefahr für Kunden oder die günstigere Alternative? Softwareentwicklung 7
J Grafiken für eigene Apps ? Softwareentwicklung 2
V [Klassendesgin] Verhalten von Subklassen für Aufgabenteilung benutzen. Softwareentwicklung 2
KranzKrone Architektur für einfaches Gui Programm Softwareentwicklung 6
R freie Engine für IOS, Android, Blackberry Softwareentwicklung 11
T SMART für USB Sticks? Softwareentwicklung 9
BinaryLogic Software für Projektplanung und -Entwicklung Softwareentwicklung 19
A MVC & getter für GUI Komponenten Softwareentwicklung 5
S Abstractes/Schnittstellen für Objekte Softwareentwicklung 8
fastjack Welches Tool für Agile Softwareentwicklung? Softwareentwicklung 6
Mike90 Lizenz für eigene software Softwareentwicklung 9
V Welche Programmisprache für den Desktop? Softwareentwicklung 17
V Zeitplanung für JUnit-Tests? Softwareentwicklung 9
B Allgemeine Fragen für eigenes Projekt Softwareentwicklung 4
P Sensibilität für Codequalität fördern Softwareentwicklung 17
B Empfehlung für Datenbankschulung? Softwareentwicklung 2
D Beispiele für Patterns Softwareentwicklung 3
K Aufwandsabschätzung für User Stories Softwareentwicklung 8
Torres SDK für automatische Bildkorrektur Softwareentwicklung 3
martin82 Tool für IT-Requests Softwareentwicklung 5
Z Welche Software für Web Anwendungen/Spiel Softwareentwicklung 3
Quaxli Suche Tutorial für Jasper Report - speziell iReport Softwareentwicklung 8
Outsourcer Webservertechnologie für Objekterkennung Softwareentwicklung 7
Landei SSH für VMware GSX mit Windows? Softwareentwicklung 2
ARadauer jetzt wirds zeit für Delphi Softwareentwicklung 6
X JavaScript Plugin für Eclipse Softwareentwicklung 3
sparrow Welche Lizenz für ein offenes Programm Softwareentwicklung 2
ARadauer Code Konvention für Datenbanken Softwareentwicklung 5
S Wie weiter gehen und tutorial für MVC Softwareentwicklung 20
m@nu Anti-Spam-System für Blog bauen Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
N Brauche Hilfe für Onlineshop Aufgabe für OOP Grundlagen Softwareentwicklung 4
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G 1 Benutzeroberfläche für 3 einzelne Programme! Softwareentwicklung 9

Ähnliche Java Themen

Neue Themen


Oben