ホームページ >Java >&#&チュートリアル >Java フレームワークで一般的に使用されるデザイン パターンとアンチパターン

Java フレームワークで一般的に使用されるデザイン パターンとアンチパターン

WBOY
WBOYオリジナル
2024-06-04 17:49:07365ブラウズ

Java フレームワークのデザイン パターンとアンチパターン: デザイン パターン: ファクトリ パターン: 具体的なクラスを指定せずにオブジェクトの作成を簡素化します。シングルトン モード: グローバル オブジェクトの作成を容易にするために、インスタンスが 1 つだけであることを確認します。アンチパターン: 神クラス: 動作と責任が多すぎるため、コードの保守が困難になります。ソーセージのアンチパターン: プロセスが相互に依存しているため、コードのトレースと実行が困難になります。

Java フレームワークで一般的に使用されるデザイン パターンとアンチパターン

Java フレームワークの一般的なデザイン パターンとアンチパターン

Java フレームワークでは、柔軟で保守可能なコードを作成するためにデザイン パターンとアンチパターンが広く使用されています。この記事では、いくつかの一般的なデザイン パターンとアンチパターンを紹介し、実際のケースを通じてその応用例を示します。

デザインパターン

ファクトリパターン:
ファクトリパターンは、具体的なクラスを指定せずにオブジェクトのインスタンスを作成するために使用されます。これにより、クライアント コードを変更せずに、さまざまなタイプのオブジェクトを作成できます。

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();  // 输出:绘制圆形
    }
}

シングルトン パターン:
シングルトン パターンは、クラスのインスタンスが 1 つだけであることを保証します。データベース接続などのグローバル オブジェクトを作成するために使用されます。

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
    }
}

アンチパターン

Godオブジェクトのアンチパターン:
Godクラスは、あまりにも多くの動作と責任を含むクラスです。これにより、コードの保守と理解が困難になります。

public class GodObject {

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

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

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

スパゲッティ コード アンチパターン:
スパゲッティ コード アンチパターンは、コード内に多くの相互依存関係があるプロセスです。これにより、コードの実行を理解して追跡することが困難になります。

public class SpaghettiCode {

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

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

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

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

これらの設計パターンとアンチパターンを理解して適用することで、開発者はより堅牢で保守しやすい Java フレームワーク コードを作成できます。

以上がJava フレームワークで一般的に使用されるデザイン パターンとアンチパターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。