In Softwaresystemen stellen „Behavior Requester “ und „Behavior Implementer “ normalerweise eine Art „Enge Kupplung". Aber in einigen Situationen, wie z. B. „Aufzeichnen, Rückgängigmachen/Wiederherstellen, Transaktion“ und anderen Verhaltensverarbeitungen, ist diese Art der engen Kopplung, die Änderungen nicht widerstehen kann, unangemessen. Wie kann in diesem Fall der „Verhaltensanforderer“ vom „Verhaltensumsetzer“ entkoppelt werden? Abstrahieren Sie eine Reihe von Verhaltensweisen von in Objekte und erreichen Sie eine lose Kopplung zwischen den beiden . Dies ist das Befehlsmuster
Klassendiagrammpublic interface ICommand { void execute(); }
public class ConcreteCommand implements ICommand { private Receiver receiver; public ConcreteCommand(Receiver receiver) { this.receiver = receiver; } @Override public void execute() { this.receiver.action(); } }
public class Receiver { public void action() { System.out.println("receiver do something"); } }
public class Invoker { private ICommand command; public Invoker(ICommand command) { this.command = command; } public void invoke() { this.command.execute(); } }
Das obige ist der detaillierte Inhalt vonBeispielcode für die Implementierung des Befehlsmodus in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!