Heim  >  Artikel  >  Java  >  Gängige Entwurfsmuster in Java-Frameworks

Gängige Entwurfsmuster in Java-Frameworks

WBOY
WBOYOriginal
2024-06-02 10:57:57319Durchsuche

Entwurfsmuster im Java-Framework werden verwendet, um die Skalierbarkeit, Wartbarkeit und Wiederverwendbarkeit des Codes zu verbessern. Zu den häufig verwendeten Mustern gehören: Singleton-Muster: Stellt sicher, dass nur eine Instanz einer Klasse vorhanden ist und greift in der gesamten Anwendung darauf zu. Factory-Methodenmuster: Erstellen Sie eine Schnittstelle für Objekte, und die Unterklasse entscheidet, welches Objekt instanziiert werden soll. Beobachtermuster: Definieren Sie eine Eins-zu-Viele-Abhängigkeitsbeziehung. Wenn sich ein Objekt ändert, erhalten andere Objekte Benachrichtigungen und aktualisieren ihren Status. Strategiemuster: Definieren Sie eine Reihe von Algorithmen und machen Sie sie austauschbar, sodass die Algorithmusklasse unabhängig von der Clientklasse ist.

Gängige Entwurfsmuster in Java-Frameworks

Häufig verwendete Entwurfsmuster in Java-Frameworks

Im Softwareentwicklungsprozess ist ein Entwurfsmuster eine bewährte Code-Organisationsstruktur, die zur Lösung häufiger Probleme verwendet wird. In Java-Frameworks werden Entwurfsmuster häufig verwendet, um die Skalierbarkeit, Wartbarkeit und Wiederverwendbarkeit von Code zu verbessern. Hier sind einige der am häufigsten verwendeten Entwurfsmuster in Java-Frameworks:

Singleton-Muster

  • Zweck: Stellen Sie sicher, dass nur eine Instanz einer Klasse vorhanden ist, und greifen Sie in der gesamten Anwendung auf diese Instanz zu.

    public class Singleton {
      private static Singleton instance;
    
      private Singleton() { /* Private constructor to prevent instantiation */ }
    
      public static Singleton getInstance() {
          if (instance == null) {
              instance = new Singleton();
          }
          return instance;
      }
    }

Factory-Methodenmuster

  • Zweck: Definieren Sie eine Schnittstelle zum Erstellen von Objekten und lassen Sie Unterklassen entscheiden, welche Klasse instanziiert werden soll.

    public interface ShapeFactory {
      Shape createShape();
    }
    
    public class CircleFactory implements ShapeFactory {
      @Override
      public Shape createShape() {
          return new Circle();
      }
    }
    
    public class SquareFactory implements ShapeFactory {
      @Override
      public Shape createShape() {
          return new Square();
      }
    }

Beobachtermuster

  • Zweck: Definieren Sie eine Eins-zu-viele-Abhängigkeitsbeziehung zwischen Objekten, wenn sich ein Objekt ändert, erhalten andere Objekte Benachrichtigungen und aktualisieren ihren Status.

    public interface Observer {
      void update(Subject subject);
    }
    
    public class Subject {
      private List<Observer> observers = new ArrayList<>();
    
      public void addObserver(Observer observer) {
          observers.add(observer);
      }
    
      public void removeObserver(Observer observer) {
          observers.remove(observer);
      }
    
      public void notifyObservers() {
          for (Observer observer : observers) {
              observer.update(this);
          }
      }
    }

Strategiemuster

  • Zweck: Definieren Sie eine Familie von Algorithmen, kapseln Sie sie und machen Sie sie austauschbar. Dieses Muster macht Algorithmusklassen unabhängig von den Clientklassen, die sie verwenden.

    public interface Strategy {
      int calculate(int num1, int num2);
    }
    
    public class AdditionStrategy implements Strategy {
      @Override
      public int calculate(int num1, int num2) {
          return num1 + num2;
      }
    }
    
    public class SubtractionStrategy implements Strategy {
      @Override
      public int calculate(int num1, int num2) {
          return num1 - num2;
      }
    }

Praktischer Fall: Beobachtermuster im Spring Framework

Spring Framework verwendet das Beobachtermuster, um Bean-Ereignisse zu benachrichtigen. Wenn eine Bean erstellt, zerstört oder geändert wird, veröffentlicht Spring Ereignisse, die Anwendungen abonnieren und entsprechend handeln können.

@EventListener(ApplicationReadyEvent.class)
public void handleApplicationReadyEvent() {
    // 在应用程序启动时执行的操作
}

Das obige ist der detaillierte Inhalt vonGängige Entwurfsmuster in Java-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn