/ /シングルトンDALクラス-.net、シングルトン、データアクセス層

シングルトンDALクラス - .net、singleton、data-access-layer

DAL(customerDAL)のクラスはすべきではありませんシングルトン?私のコントローラー(customerController)は "Shared Subs"を公開しているため、呼び出しのたびに、既に存在する場合は新しいDALオブジェクトを作成する必要はありません。正しい?

ありがとう

回答:

回答№1の場合は3

シングルトンオブジェクトは、テストが難しいことで有名です。 インスタンス化に費用がかからない方法でDALを作成し、必要に応じて新しいDALを作成することを検討します。これにより、DALの単体テストをはるかに簡単に記述でき、オーバーヘッドもあまり発生しません。 。さらに、DALをシングルトンとして作成する場合、マルチスレッド環境(Webアプリなど)で使用する場合は、スレッドセーフにすることにさらに注意を払う必要があります。


回答№2の場合は3

あなたがウェブサイトを持っているなら、シングルトンダルオブジェクトはサイトへのすべてのリクエストは同じアプリケーションの一部であるため、非常に危険です。それらを間違って構築すると、データベースへのアクセスのボトルネックになる可能性があります。


回答№3の場合は3

これは、完全なソリューションのアーキテクチャに大きく依存します。消費者が多い場合、1つのシングルトンを取得するのは難しいかもしれません。 ここに DAL


回答№4の場合は0

シングルトンは、クラスの1つのインスタンスのみがアプリケーションのインスタンス内でインスタンス化されるようにする場合にのみ使用する必要があります。

シングルトンは、コードの臭いとはほとんど考えられませんでした。シングルトンを使用するほとんどの人はそれをひどく使用します。そのため、見たときに正しく使用されていない可能性が高いです。

DALに関しては、オブジェクトは作成するのに拡張性がありません。接続プールの使用に依存し、コマンドを実行する必要があるたびにプールに接続を要求する必要があります。

もちろん、利用可能なさまざまなパターンがあり、パフォーマンスのために要求を微調整する必要がない限り、ほとんどの場合ORMを使用する必要があります。

見る NHibernate, 超音速, Linq2Sql, エンティティフレームワーク (まだリリースされていませんか?)など。