Heim > Java > javaLernprogramm > Beispielanalyse für Java-Entwurfsmusterstrategiemuster

Beispielanalyse für Java-Entwurfsmusterstrategiemuster

WBOY
Freigeben: 2023-05-02 16:49:07
nach vorne
1373 Leute haben es durchsucht

1. Grundlegende Einführung

1) In Strategy Pattern werden Algorithmusfamilien (Strategiegruppen) separat definiert und gekapselt, sodass sie untereinander ersetzt werden können. Dieser Modus macht Algorithmusänderungen unabhängig von den Kunden, die den Algorithmus verwenden

2 ) Dieser Algorithmus verkörpert mehrere Designprinzipien. Erstens trennt er sich ändernden Code von unverändertem Code. Zweitens ist er für Schnittstellen und nicht für bestimmte Klassen programmiert. Drittens werden Mehrzweckkombinationen/Aggregation verwendet Strategien in Kombination verwenden)

Zum Beispiel: Für die Umweltenergieeinsparung werden drei Energiesparmethoden vorgeschlagen: Basisbandplatinen-Energieeinsparung, SPC-Energieeinsparung, Produktenergieeinsparung, verschiedene Energiesparmethoden, spezifische Verarbeitung von Umweltgeräten. Der Prozess ist anders

2. Traditioneller Weg

public abstract class EsPolicy {
    public void esPolicyHandler() {
    }
}
Nach dem Login kopieren

3) SpcEsPolicy erbt EsPolicy und überschreibt die esPolicyHandler-Methode.

public class BbEsPolicy extends EsPolicy {
    @Override
    public void esPolicyHandler() {
        System.out.println("===处理基带板节能策略===");
    }
}
Nach dem Login kopieren
. 4) ProdEsPolicy erbt EsPolicy und überschreibt die esPolicyHandler-Methode.

public class SpcEsPolicy extends EsPolicy {
    @Override
    public void esPolicyHandler() {
        System.out.println("===Spc节能策略处理===");
    }
}
Nach dem Login kopieren
Basisbandplatine Energiesparstrategie = = =

===Spc-Energiesparstrategieverarbeitung====Beispielanalyse für Java-Entwurfsmusterstrategiemuster===Produktenergiesparstrategieverarbeitung===

Problem: Die traditionelle Methode besteht darin, die übergeordnete Klasse über die Unterklasse zu erben und die übergeordnete Klasse zu überschreiben Methode, um den Unterschied zwischen verschiedenen Unterklassen zu erreichen. Verhalten, lokale Änderungen an Klassen, insbesondere lokale Änderungen an Superklassen, wirken sich auf andere Teile aus und haben Spillover-Effekte

3 Übernehmen Sie ein Strategiemuster

( 2) Codierungsimplementierung

1) Definieren Sie die Richtlinienschnittstelle und definieren Sie die abstrakte Methode

public class ProdEsPolicy extends EsPolicy {
    @Override
    public void esPolicyHandler() {
        System.out.println("===产品节能策略处理===");
    }
}
Nach dem Login kopieren

2) BbEsPolicyHandler implementiert die Richtlinienschnittstelle und implementiert die esPolicyHandler-Methode

public class EsPolicyTest {
    public static void main(String[] args) {
        EsPolicy bbEsPolicy = new BbEsPolicy();
        bbEsPolicy.esPolicyHandler();
        SpcEsPolicy spcEsPolicy = new SpcEsPolicy();
        spcEsPolicy.esPolicyHandler();
        ProdEsPolicy prodPolicy = new ProdEsPolicy();
        prodPolicy.esPolicyHandler();
    }
}
Nach dem Login kopieren
3) SpcEsPolicyHandler implementiert die Richtlinienschnittstelle und implementiert die esPolicyHandler-Methode

public interface EsPolicyHandler {
    void esPolicyHandler();
}
Nach dem Login kopieren

4) ProdEsPolicyHandler implementiert die Richtlinienschnittstelle und implementiert die esPolicyHandler-Methode
7) SpcEsPolicy erbt EsPolicy und instanziiert es in den esPolicyHandler-Schnittstelleneigenschaften des Konstruktors.

public class BbEsPolicyHandler implements EsPolicyHandler {
    @Override
    public void esPolicyHandler() {
        System.out.println("===基带板节能策略处理===");
    }
}
Nach dem Login kopieren
8) ProdEsPolicy erbt EsPolicy und instanziiert die esPolicyHandler-Schnittstelleneigenschaften in der Konstruktormethode Basisband verarbeiten Board-Energiesparstrategien ===

= ==Spc-Energiesparstrategieverarbeitung===

===Produktenergiesparstrategieverarbeitung===

4. Vorsichtsmaßnahmen und Details des Strategiemodells

1) Der Schlüssel Zum Strategiemodell gehört: Analysieren Sie die sich ändernden und unveränderten Teile des Projekts. Teil Beispielanalyse für Java-Entwurfsmusterstrategiemuster

2) Die Kernidee des Strategiemusters ist: Verwenden Sie mehr Kombinationen/Aggregationen und weniger Vererbung. Verwenden Sie Verhaltensklassenkombinationen anstelle von Verhaltensvererbung , was flexibler ist;

3) verkörpert das Prinzip „geschlossen für Änderungen, offen für Erweiterungen“. Der Client fügt Verhalten hinzu, ohne den ursprünglichen Code zu ändern, wodurch die Verwendung mehrerer Übertragungen vermieden wird Anweisungen (if...else if...else)

4) Bietet ersetzbare Vererbung. Relationaler Ansatz: Das Strategiemuster kapselt den Algorithmus in einer unabhängigen Strategieklasse, sodass Sie ihn unabhängig von seinem Kontext ändern können, was den Wechsel erleichtert , leicht zu verstehen und leicht zu erweitern

5) Beachten Sie Folgendes: Jedes Mal, wenn Sie eine Strategie hinzufügen, müssen Sie Folgendes tun: Das Hinzufügen einer Klasse führt zu einer großen Anzahl von Klassen, wenn zu viele Strategien vorhanden sind

Das obige ist der detaillierte Inhalt vonBeispielanalyse für Java-Entwurfsmusterstrategiemuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage