2

ギャング・オブ・フォーと、ファサードファクトリーシングルトンなどのパターンのいくつかについて知っています。

その上、たまたま、何が良いのか、何の目的なのか、よくわからないパターンが複数ありました。

あなたが知っているデザインパターンについて、あなたの手がかりを得たいと思います. その使用法と、別のパターンでそれを使用することが正確な場合を説明するコード サンプルを提供していただければ幸いです。

回答ごとに 1 つのパターンのみ、パターンごとに 1 つの例のみでお願いします。

共有したいパターンがすでに議論されているかどうかを確認してください。そうでない場合は、お気軽にコミュニティと共有してください。=)

4

4 に答える 4

2

シングルトンパターン

定義:システムに必要なクラスのインスタンスが1つだけで、そのインスタンスにシステムのさまざまな部分でアクセスできる必要がある場合は、そのクラスをシングルトンにすることで、インスタンス化とアクセスの両方を制御します。

例:具体的な例は、ISessionFactoryNHibernateを使用しているときのAPIです。メモリにロードされるため、ISessionFactoryインスタンス化にコストがかかります。これには、すべてのオブジェクトリレーションマッピングとデータベース接続が一度にメモリにロードされるため、インスタンスを1つだけ作成し、ISessionこれを使用してAPIインスタンスを作成することをお勧めします。 APIの一意のインスタンスISessionFactory、つまりシングルトンパターン

using NHibernate;

internal class NhConnectionFactory {
    private static readonly ISessionFactory _sessionFactory = config.BuildSessionFactory();

    internal NhSystemFactory() {
    }

    internal ISession OpenSession(string connectionString) {
        return _sessionFactory.OpenSession();
    }

    // Other methods here...
}

public static class NhSystemFacade {
    private static readonly NhConnectionFactory _nhConnectionFactory = new NhConnectionFactory();

    public static string DefaultConnectionString {
        get {
            return Properties.Settings.Default.DefaultConnectionString;
        }
    }

    public static ISession OpenSession() {
        return _nhConnectionFactory.OpenSession(DefaultConnectionString);
    }
}

リンク:

于 2010-12-08T21:47:16.923 に答える
2

アダプターパターン

ウィキペディアのリンク

このパターンの実際の例: C# ADO.NET DataAdapter

最初と最後のリンクの両方に、必要な人のためのコード サンプルがあります。

于 2010-12-08T21:24:13.467 に答える
1

遅延初期化

アプリケーションの実行中に一部のオブジェクトが使用されない可能性がある場合に役立ちます。したがって、オブジェクトは必要な場合にのみ作成されるため、不要な場合はメモリを節約できます。

于 2010-12-09T14:08:18.440 に答える
1

状態パターン - http://en.wikipedia.org/wiki/State_pattern

于 2011-04-18T11:12:05.417 に答える