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

Beispielanalyse für Java-Entwurfsmusterstrategiemuster

WBOY
WBOYnach vorne
2023-05-02 16:49:071310Durchsuche

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() {
    }
}

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

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

public class SpcEsPolicy extends EsPolicy {
    @Override
    public void esPolicyHandler() {
        System.out.println("===Spc节能策略处理===");
    }
}
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("===产品节能策略处理===");
    }
}

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();
    }
}
3) SpcEsPolicyHandler implementiert die Richtlinienschnittstelle und implementiert die esPolicyHandler-Methode

public interface EsPolicyHandler {
    void esPolicyHandler();
}

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("===基带板节能策略处理===");
    }
}
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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen