0

WebアプリケーションのビジネスレイヤーにPlayerというクラスがあります。

Playerクラスには、PlayerID、CategoryID、CountryIDのフィールドがあります

Playerクラスの関数は、データアクセス層のPlayerDBクラスの関数を呼び出します。この関数は、PlayerテーブルからPlayerID、CategoryID(Categoryテーブルへの外部キー)およびCountryID(Countryテーブルへの外部キー)のデータを返すストアドプロシージャを呼び出します。 。

上記の呼び出しに国名と国の画像(URLパス)を追加して、CountryIDごとにCountryテーブルから新しいフィールドを返す状況が発生しました。

私の質問は、国名と国の画像を追加のフィールドとしてPlayerクラスに追加しますか、それともCountry(BLL)とCountryDB(DAL)という新しいクラスと新しいストアドプロシージャがありますか?

最も簡単な方法ではなく、ベストプラクティスを実行したいと思います。

関連する場合は、ASP.NET、VB.NET、およびSQL2005を使用しています。

あなたはおそらく私が初心者であると言うことができるので、私が私の質問で正しい用語を使用しなかったならば私を許してください。私はあなたがその考えを理解することを望みます。

4

5 に答える 5

1

おそらく新しいクラスを作成する必要があるようです。

「Player」クラスの用途によって異なります。アプリの複数の部分で使用されているジェネリック型 (およびそのように聞こえる) である場合、アプリの 1 つの部分のカスタマイズを Player クラスに追加することはおそらく悪いことです。

ただし、(たとえば) Player クラスがアプリ内の 1 つのユーザー インターフェイスでのみ使用され、その目的がアプリのその部分のみの Player を表す場合は、それらのフィールドを追加するのが合理的かもしれません。

于 2009-02-27T01:54:34.637 に答える
1

新しいクラスを作成します。個別の論理エンティティとして意味がある場合は、独自のクラスにする必要があります。

于 2009-02-27T01:47:07.777 に答える
1

国クラスを作成し、オブジェクト構成を使用して、国クラスをプレーヤー クラスのプロパティにすることができます。

Public Property Country() as BLL.Country
' etc

次に、次のようにメソッドを呼び出します。

Dim p as BLL.Player
a = p.Country.ID
b = p.Country.Name
c = p.Country.Image
d = p.ID
e = p.CategoryID
于 2009-02-27T03:35:59.543 に答える
0

それを尋ねなければならないときはいつでも、答えは常に新しいクラスを作成することであることがわかりました。クラスが多すぎるシステムや、1 つのはずだったクラスが 2 つあるシステムを見たことがないと思います。

これまで。

于 2009-02-27T01:55:21.843 に答える