[JAVA] Befehlsmuster

Command Pattern Erstellen Sie eine Klasse zum Speichern der Klasseninstanz (command.class) und behandeln Sie die Methode der gespeicherten Klasseninstanz wie die command.class-Methode.

Auf dieser Seite ・ Einfaches Befehlsmuster -Zusatz einer Funktion zur Anzeige der Anzahl der Methodenausführungen Beschreibe über

Design Pattarm MENU

Einfaches Befehlsmuster

Es hat die folgende Konfiguration

Klasse Erläuterung
command.interface Machen Sie die registrierten Instanzen gemeinsam
samCommand1.class Implementieren Sie den Befehl und haben Sie eine Methode
samCommand2.class Implementieren Sie den Befehl und haben Sie eine Methode
commandPool.class Speichern Sie Instanzen von samCommand1 und samCommand2
user(Main.class) Command.Überprüfen Sie die Funktionsweise der Klasse
  • Benutzer Enthält die Bedeutung, die andere Entwickler für dieses Muster verwenden

command.interface


interface command{
  void s();
}

samCommand1.class


class samCommand1 implements command{
  public void s(){System.out.println("command1");}
}

samCommand2.class


class samCommand2 implements command{
  public void s(){System.out.println("command2");}
}

commandPool.class


class commandPool{
  command[] pool=new command[2];  // command.Speichert eine Klasseninstanz, die die Schnittstelle implementiert
  void set(int key,command com){
    if(pool[key]==null){
       pool[key]=com;
    }
  }
  void exec(int key){
    pool[key].s();
  }
}

user(Main.class)


public static void main(String[] args){
  samCommand1 sc1 = new samCommand1();
  samCommand2 sc2 = new samCommand2();
  commandPool cop = new commandPool();
  cop.set(0,sc1);
  cop.set(1,sc2);
  cop.exec(1);
}}

Hinzufügen einer Funktion zur Anzeige der Anzahl der Methodenausführungen

CommandPool.class wurde nach unten geändert

commandPool.class


class commandPool{
  command[] pool = new command[4];
  int[] count = new int[2];
  void  set(int key,command com){
    if(pool [key]==null){
       pool [key]=com;
       count[key]=0;
    }
  }
  void exec(int key){
    pool [key].s();
    count[key]++;
    System.out.println(count[key]+"Zeit");
  }
}

Recommended Posts

Befehlsmuster
Entwurfsmuster ~ Befehl ~
Prototypmuster
Erinnerungsmuster
Vermittlermuster
Zusammengesetztes Muster
Beobachtermuster
Builder-Muster
Strategiemuster
Iteratormuster
Besuchermuster
Adaptermuster
Proxy-Muster
Strategiemuster
Zusammengesetztes Muster
Singleton-Muster
Singleton-Muster
Prototypmuster
Fassadenmuster
Dekorationsmuster
Fliegengewichtsmuster
Dekorateur Muster
Vermittlermuster
Fassadenmuster
Besuchermuster
Befehl docker-compose
Brückenmuster
abstraktes Fabrikmuster
Entwurfsmuster ~ Builder ~
[Java] Strategiemuster
Memorandum Docker-Befehl
Entwurfsmuster ~ Besucher ~
Java-Entwurfsmuster
Java-Rückrufmuster
Entwurfsmuster ~ Proxy ~
Entwurfsmuster ~ Zustand ~
Factory Method Pattern
Entwurfsmuster ~ Strategie ~
Entwurfsmuster ~ Singleton ~
Entwurfsmuster ~ Composite ~
Entwurfsmuster (2): Builder
Entwurfsmuster (1): AbstractFactory
[Java] Singleton-Muster
Docker-Grundbefehl
Abstraktes Fabrikmuster
Entwurfsmuster ~ Iterator ~
Entwurfsmuster ~ Fassade ~
Entwurfsmuster ~ Brücke ~
Docker-Befehlsübersicht
Entwurfsmuster ~ Mediator ~
Muster der Vorlagenmethode
Entwurfsmuster ~ Dekorateur ~
Muster der Vorlagenmethode
Entwurfsmuster ~ Interpreter ~
Docker-Compose-Befehlsnotiz
Befehl nginx start