suchen
HeimJavajavaLernprogrammEntdecken Sie die praktische Anwendung von Java-Entwurfsmustern: anwendbare Umgebungen von Singleton-Mustern und Factory-Mustern

Entdecken Sie die praktische Anwendung von Java-Entwurfsmustern: anwendbare Umgebungen von Singleton-Mustern und Factory-Mustern

Umfassendes Verständnis von Java-Entwurfsmustern: Die Anwendungsszenarien von Singleton-Mustern und Factory-Mustern erfordern spezifische Codebeispiele

Entwurfsmuster sind Methoden und Erfahrungszusammenfassungen, die in der Softwareentwicklung praktiziert und häufig zur Lösung spezifischer Probleme eingesetzt werden. Bei der Entwicklung von Java-Sprachanwendungen gehören zu den häufig verwendeten Entwurfsmustern Singleton-Muster und Factory-Muster. In diesem Artikel werden die Anwendungsszenarien dieser beiden Entwurfsmuster eingehend untersucht und anhand spezifischer Codebeispiele veranschaulicht.

1. Singleton-Muster

Das Singleton-Muster ist ein häufig verwendetes Entwurfsmuster. Es stellt sicher, dass eine Klasse nur eine Instanz hat und einen globalen Zugriffspunkt bereitstellt. Spezifische Implementierungsmethoden umfassen den Lazy-Man-Stil und den Hungrig-Man-Stil.

Der Lazy-Singleton-Modus eignet sich für Situationen, in denen die Ressourcen relativ groß sind und häufig verwendet werden. Das Folgende ist ein Beispielcode des Lazy-Singleton-Musters:

public class LazySingleton {
    private static LazySingleton instance;
    
    private LazySingleton() {
        // 私有构造方法
    }
    
    public static LazySingleton getInstance() {
        if (instance == null) {
            synchronized (LazySingleton.class) {
                if (instance == null) {
                    instance = new LazySingleton();
                }
            }
        }
        return instance;
    }
}

Das Hungrig-Singleton-Muster eignet sich für Situationen, in denen die Ressourcen relativ klein sind und ständig verwendet werden. Das Folgende ist ein Beispielcode des Singleton-Musters im Hungry-Stil:

public class EagerSingleton {
    private static final EagerSingleton instance = new EagerSingleton();
    
    private EagerSingleton() {
        // 私有构造方法
    }
    
    public static EagerSingleton getInstance() {
        return instance;
    }
}

Die Anwendungsszenarien des Singleton-Musters umfassen unter anderem die folgenden Situationen:

  1. Objekte, die häufig erstellt und zerstört werden müssen, um den Ressourcenverbrauch zu reduzieren
  2. Es müssen globale Zugriffsobjekte sein, um die gemeinsame Nutzung von Daten oder das Aufrufen von Methoden zwischen verschiedenen Modulen zu erleichtern.
  3. Die Anzahl der Instanzen der Klasse muss gesteuert werden, z. B. Thread-Pools, Datenbankverbindungspools usw.

2. Factory-Muster

Factory-Muster ist ein häufig verwendetes Designmuster. Es kapselt den Objekterstellungsprozess in einer Factory-Klasse und bietet eine einheitliche Schnittstelle zur Außenwelt. Zu den Fabrikmustern gehören gewöhnliche Fabrikmuster, Fabrikmethodenmuster und abstrakte Fabrikmuster.

Das gewöhnliche Factory-Muster eignet sich für die dynamische Entscheidung, welche spezifische Instanz basierend auf den eingehenden Parametern erstellt werden soll. Das Folgende ist ein Beispielcode eines gängigen Fabrikmusters:

public class ShapeFactory {
    public Shape createShape(String shapeType) {
        if ("circle".equals(shapeType)) {
            return new Circle();
        } else if ("rectangle".equals(shapeType)) {
            return new Rectangle();
        } else if ("triangle".equals(shapeType)) {
            return new Triangle();
        } else {
            return null;
        }
    }
}

Das Fabrikmethodenmuster eignet sich für Situationen, in denen die Produktlinie erweitert werden muss und jede bestimmte Fabrik für die Erstellung eines Produkts verantwortlich ist. Das Folgende ist ein Beispielcode des Factory-Methodenmusters:

public interface ShapeFactory {
    Shape createShape();
}

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

public class RectangleFactory implements ShapeFactory {
    @Override
    public Shape createShape() {
        return new Rectangle();
    }
}

public class TriangleFactory implements ShapeFactory {
    @Override
    public Shape createShape() {
        return new Triangle();
    }
}

Das abstrakte Factory-Muster eignet sich für Situationen, in denen Sie eine Reihe verwandter oder abhängiger Produktobjekte erstellen müssen. Das Folgende ist ein Beispielcode des abstrakten Fabrikmusters:

public interface AbstractFactory {
    Shape createShape();
    Color createColor();
}

public class CircleFactory implements AbstractFactory {
    @Override
    public Shape createShape() {
        return new Circle();
    }
    
    @Override
    public Color createColor() {
        return new Red();
    }
}

public class RectangleFactory implements AbstractFactory {
    @Override
    public Shape createShape() {
        return new Rectangle();
    }
    
    @Override
    public Color createColor() {
        return new Blue();
    }
}

public class TriangleFactory implements AbstractFactory {
    @Override
    public Shape createShape() {
        return new Triangle();
    }
    
    @Override
    public Color createColor() {
        return new Green();
    }
}

Die Anwendungsszenarien des Fabrikmusters umfassen unter anderem die folgenden Situationen:

  1. Situationen, in denen mehrere ähnliche Objekte erstellt werden müssen, um die Codelogik zu vereinfachen;
  2. Bei der Erstellung spezifischer Produkte müssen Details ausgeblendet werden, um die Kopplung zu verringern.
  3. Wenn eine Erweiterung der Produktlinie erforderlich ist, um die Erstellung neuer Produkte zu erleichtern.

Zusammenfassend lässt sich sagen, dass das Singleton-Muster und das Factory-Muster häufig verwendete Entwurfsmuster sind und in der Java-Anwendungsentwicklung weit verbreitet sind. Das Singleton-Muster eignet sich für Szenarien, in denen sichergestellt werden muss, dass eine Klasse nur eine Instanz hat, während das Factory-Muster für Szenarien geeignet ist, in denen der Erstellungsprozess eines Objekts gekapselt werden muss. In bestimmten Anwendungen sollten Entwickler geeignete Entwurfsmuster auswählen, die auf den Anforderungen zur Verbesserung der Codequalität und Wartbarkeit basieren.

Das obige ist der detaillierte Inhalt vonEntdecken Sie die praktische Anwendung von Java-Entwurfsmustern: anwendbare Umgebungen von Singleton-Mustern und Factory-Mustern. 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

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ße Werkzeuge

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung