私はDATAACCESS共通演算子のための静的メソッドを使用する必要がありますか?
-
13-09-2019 - |
質問
私は、Hibernateを使用していないことだし、それがすべてで有効な代替ではありません。私は、ADO.NETに基づくフレームワークを開発しました。このフレームワークは、各データベース・エンティティのデフォルトの演算子があります。
たとえば、データアクセス層は、次のようにデフォルト演算子があります
Insert
Update
Delete
Get
GetAll
このメソッドにアクセスするために、我々は以下の股関節のサンプルコードとして働きます
DataAccess.Order daoOrder;
Entity.Order entityOrder;
DataAccess.Order daoOrder;
entityOrder = new Entity.Order();
entityOrder.ID = 1090;
daoOrder = new DataAccess.Order();
daoOrder.Insert(entityOrder);
私が使用する静的メソッドを考えていたので、コードは同じくらい簡単になります:
Entity.Order entityOrder;
entityOrder = new Entity.Order();
entityOrder.ID = 1090;
DataAccess.Order.Insert(entityOrder);
システムが30個のテーブルと30個のエンティティを持っていると仮定します。私たちは、静的オブジェクトとして実行されている30 DATAACCESSオブジェクトを必要としています。 この静的な構造は、私たちにいくつかのプロセッササイクルを節約し、より少ないガベージコレクタのためのコストとして、いくつかのメモリを節約するでしょう。
私は、これらの方法で、ビジネスとDATAACCESS共通演算子のための静的メソッドを使用する必要がありますか? あなたは、このアプローチについての利点と欠点について話していただけますか? (私が意味する、メモリ、パフォーマンス...)
解決
あなたは上記の言及二つのオプション間の性能差は事実上存在しないだろう。私はアカウントにドメインモデルや他のビジネス要件を取って、あなたが管理できる最もクリーンで柔軟な設計のために行く、その後、あなたが稼働している一度パフォーマンスチューニングを心配でしょう。試してみて、第二、あなたのシステムを構築している前に、ボトルネックを推測しないでください。
<のhref =「http://gregbeech.com/blogs/tech/archive/2007/01/11/static-vs-instance-method-performance.aspx」の分析のためのグレッグブナのことで、この記事を参照してください。インスタンスのパフォーマンスの対静的のrel = "nofollowをnoreferrer"> ..
彼の結論ます:
のメソッドに20億回を呼び出すには、各メソッドの呼び出しの
のために約何の節約となる、それは静的なことによって、5msのを自分の周りに救うことができます
他のヒント
、それと相互作用するすべてのオブジェクトは非常にそれと結合されます。実際のところ、あなたのコードはよくテスト可能ではありません。私があなただったら、私は静的メソッド/クラスだけでなく、シングルトンの使用を避けると思います。あなたのアプリをテストドライブしたくない場合を除きます。