シングルトンパターン
定義:システムに必要なクラスのインスタンスが1つだけで、そのインスタンスにシステムのさまざまな部分でアクセスできる必要がある場合は、そのクラスをシングルトンにすることで、インスタンス化とアクセスの両方を制御します。
例:具体的な例は、ISessionFactory
NHibernateを使用しているときの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);
}
}
リンク: