2009-08-19 4 views
0

私のデータモデルをうまく整理する助けが必要です。
私は簡単なノートブックになるアプリを書いています。私は3層アーキテクチャ= ビジネスロジック、データロジック、データベースアクセスを使用します。
タグのシステムを使いたいので、アプリで情報を検索しやすくなります。いくつかの質問があります
- 懸念の分離のため、これらのエンティティを介したタグ検索をサポートするエンティティおよびクラスのクラスは異なる必要があります。だから、それを行う最善の方法は何か - カプセル化または継承?
- エンティティクラスを取得してデータベースに情報を渡すクラスからエンティティクラスを分離するのは良い考えですか?はいの場合、エンティティクラス、データベースクラス、タグ検索ヘルパー、BLクラスの4つのレベルになります。
エンティティをデータベースモデルからどのように分離するのですか?

答えて

0

これは非常に一般的な質問ですので、私はそれを十分にカバーすることはできません。

一般に、疑わしい場合は継承を避けてください。継承は慎重に使用されるべきであり、実際の継承のまれな用途があります。インターフェイスと集約が最も適切です。

私はあなたのタグ検索ヘルパーを理解していません。タグはエンティティであり、タグの処理はビジネスロジックです。タグに基づいてエンティティを検索すると、おそらくインタフェースを利用することができ、それでもビジネスロジックです。

"データベースを取得してデータベースに提供する"クラスとは何ですか?あなたはデータアクセス層について話していますか?私はあなたのニーズに合ったデータベースにアクセスするための既存のライブラリや技術を探します。私はNHibernateを使用していますが、私はこれがあなたのアプリケーションにとって過度のものだと思います。周囲には他にもたくさんの製品があります。

システムの複雑さに応じて、必要な分だけ分離する必要があります。あまり助けにはならない、わかった。

+0

データレイヤーではなく、ビジネスロジックでの検索オーバータグの処理が優れていますか?はい、私はそれを取得します。 – chester89

+0

BLで使用されているこの(DAL)に関する特定のクエリがあります。どのようにしてどのようなエンティティタイプに対して一般的なことを行うことができるかは、テクノロジーによって決まります。 –

関連する問題