Heim  >  Artikel  >  Java  >  Häufig verwendete Entwurfsmuster und Anti-Muster in Java-Frameworks

Häufig verwendete Entwurfsmuster und Anti-Muster in Java-Frameworks

WBOY
WBOYOriginal
2024-06-04 17:49:07291Durchsuche

Entwurfsmuster und Anti-Muster im Java Framework: Entwurfsmuster: Fabrikmuster: Vereinfacht die Objekterstellung ohne Angabe konkreter Klassen. Singleton-Modus: Stellen Sie sicher, dass nur eine Instanz vorhanden ist, um die Erstellung globaler Objekte zu erleichtern. Anti-Pattern: God-Klasse: Zu viele Verhaltensweisen und Verantwortlichkeiten, was die Pflege des Codes erschwert. Sausage-Anti-Pattern: Prozesse sind voneinander abhängig, was die Nachverfolgung und Ausführung von Code erschwert.

Häufig verwendete Entwurfsmuster und Anti-Muster in Java-Frameworks

Gängige Entwurfsmuster und Anti-Muster in Java-Frameworks

In Java-Frameworks werden Entwurfsmuster und Anti-Muster häufig verwendet, um flexiblen und wartbaren Code zu erstellen. In diesem Artikel werden einige gängige Entwurfsmuster und Anti-Muster vorgestellt und ihre Anwendung anhand praktischer Fälle demonstriert.

Entwurfsmuster

Fabrikmuster:
Fabrikmuster werden verwendet, um Instanzen von Objekten zu erstellen, ohne deren konkrete Klasse anzugeben. Es ermöglicht die Erstellung verschiedener Objekttypen, ohne den Client-Code zu ändern.

public class Factory {

    public static Shape getShape(String type) {
        switch (type) {
            case "Circle":
                return new Circle();
            case "Rectangle":
                return new Rectangle();
            default:
                return null;
        }
    }
}

public class Main {

    public static void main(String[] args) {
        Shape shape = Factory.getShape("Circle");
        shape.draw();  // 输出:绘制圆形
    }
}

Singleton-Muster:
Das Singleton-Muster stellt sicher, dass eine Klasse nur eine Instanz hat. Es wird verwendet, um globale Objekte wie Datenbankverbindungen zu erstellen.

public class Singleton {

    private static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

public class Main {

    public static void main(String[] args) {
        Singleton instance1 = Singleton.getInstance();
        Singleton instance2 = Singleton.getInstance();

        System.out.println(instance1 == instance2);  // 输出:true
    }
}

Anti-Pattern

God Object Anti-Pattern:
Die Gott-Klasse ist eine Klasse, die zu viele Verhaltensweisen und Verantwortlichkeiten enthält. Dies macht es schwierig, den Code zu warten und zu verstehen.

public class GodObject {

    // 大量的方法和字段...

    public void doSomething() {
        // 复杂的行为...
    }

    public void doSomethingElse() {
        // 另一个复杂的行为...
    }
}

Spaghetti-Code-Antimuster:
Das Spaghetti-Code-Antimuster ist ein Prozess, bei dem es viele gegenseitige Abhängigkeiten im Code gibt. Dies macht es schwierig, die Codeausführung zu verstehen und zu verfolgen.

public class SpaghettiCode {

    public void foo() {
        bar();
        if (condition) {
            baz();
        } else {
            qux();
        }
    }

    public void bar() {
        // 依赖于 foo()
    }

    public void baz() {
        // 依赖于 foo()
    }

    public void qux() {
        // 依赖于 foo()
    }
}

Durch das Verständnis und die Anwendung dieser Entwurfsmuster und Anti-Muster können Entwickler robusteren und wartbareren Java-Framework-Code erstellen.

Das obige ist der detaillierte Inhalt vonHäufig verwendete Entwurfsmuster und Anti-Muster 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