suchen
HeimJavajavaLernprogrammBeispielanalyse für Java-Entwurfsmusterstrategiemuster

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:亿速云. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft