Richtige Diskussion:
Der Befehlsmodus umfasst eine Anforderung oder einen Betrieb in ein Objekt. Das Laufzeitsystem des Befehlsmodus verwendet verschiedene Anforderungen, um die Client, Warteschlangenanforderungen oder Aufzeichnungsanforderungsprotokolle zu parametrisieren und die Befehlsrückweiterungs- und Wiederherstellungsfunktionen bereitzustellen.
beliebt:
Eigentlich ist es leicht zu verstehen. Befehlsmodus, was Ihnen wichtig ist, sind Befehle (oder Operationen). Lassen Sie uns ein Beispiel geben. In einem Unternehmen ist der gesamte Betrieb wie ein System. Ein Chef gab eine Bestellung aus, und der Führer der mittleren Ebene erhielt die Bestellung und verabschiedete sie dann dem zuständigen Mitarbeiter. Der ganze Prozess ist klar. Es gibt eine Anforderung, wie Sie diesen Prozess beheben und ein System bilden. Wir müssen nur den entscheidenden Punkt erfassen: Reihenfolge. Extrahieren Sie es und alles andere wird gelöst. Extrahieren Sie die Befehle und verkapulieren Sie sie in ein unabhängiges Objekt, um die Entkopplung zu erreichen. Was die anderen betrifft, kann es leicht erweitert werden, unabhängig davon, ob dieser Befehl vom CEO, der Personalabteilung oder Ihrem Vater vorgeschlagen wurde. Unabhängig davon, ob der Testamentsvollstrecker dieser Bestellung Zhang San oder Turtle ist. Die Entstehung dieses Modells ist eigentlich ein philosophischer "den Hauptschutz". Weitere Beispiele, wie die anderen Autoren, zitierte "Was ist der Unterschied zwischen dem Straßenrand und einem Grillrestaurant, um Barbecue zu essen" oder "Der Affenkönig macht eine große Aufregung um den Jade -Kaiser im himmlischen Palast, um Affen mit Taibai Venus zu fangen".
Der Java -Befehlsmodus ist im Wesentlichen eine Verkapselung von Befehlen, die die Verantwortung für die Ausgabe von Befehlen und die Delegation an verschiedene Objekte unterscheidet. In Laiensbedingungen bin ich der Chef, also sende ich nur eine Bestellung. Wem Sie diese Ordnung an die und wer es ausführen soll, liegt es an mir. Ich schicke kein Geld, um jemanden einzustellen, der Schwierigkeiten für mich selbst verursacht. Sie sind der Mitarbeiter, der für Dinge zuständig ist, und Ihre Pflicht ist es, die von Ihren Vorgesetzten zugewiesenen Aufgaben zu erledigen. Seien Sie bodenständig, wissen Sie nicht zu viel, klatschen Sie nicht zu viel.
erreichen:
Schauen wir uns zuerst das Klassendiagramm an:
Basierend darauf sehen wir uns den Beispielcode an:
public interface icommand {void execute (); } öffentliche Klasse ConcreteCommand implementiert Icommand {privater Empfängerempfänger; public concretecommand (Empfängerempfänger) {this.Receiver = Empfänger; } @Override public void execute () {this.Receiver.action (); }} öffentlicher Klassenempfänger {public void action () {System.out.println ("Empfänger machen etwas"); }} public class Invoker {private icommand -Befehl; public invoker (icommand Command) {this.command = command; } public void invoke () {this.command.execute (); }} public class Test {public static void main (String [] args) {Receiver receiver = new receiver (); // Der reale Ausführungsförderer icommand command = new ConcReteCommand (Empfänger); // Der für Isolation Invoker verwendete Befehl invoker = new Invoker (Befehl); // Der Callener invoker.invoke (); }}
Vorteil:
Mangel:
Es kann zu viele spezifische Befehlsklassen geben.