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, エンティティフレームワーク (まだリリースされていませんか?)など。