0

我的 Web 应用程序的业务层中有一个名为 Player 的类。

Player 类具有 PlayerID、CategoryID 和 CountryID 字段

Player 类中的一个函数调用数据访问层中 PlayerDB 类中的一个函数,该函数又调用一个存储的过程,该过程从 Player 表中返回 PlayerID、CategoryID(Category 表的外键)和 CountryID(Country 表的外键)的数据.

我现在有一种情况,我想将 Country Name 和 Country Image(url 路径)添加到上述调用中,从 Country 表中返回每个 CountryID 的新字段。

我的问题是,我是否将国家名称和国家形象作为附加字段添加到 Player 类,或者我是否有名为 Country(BLL) 和 CountryDB(DAL) 的新类和一个新的存储过程?

我想做最好的做法,而不是最简单的方法。

如果它是相关的,我正在使用 ASP.NET、VB.NET 和 SQL2005。

正如您可能会告诉我的那样,我是一个新手,如果我没有在我的问题中使用正确的术语,请原谅我。我希望你能明白。

4

5 回答 5

1

创建一个新类。如果它作为一个单独的逻辑实体有意义,那么它应该是它自己的类。

于 2009-02-27T01:47:07.777 回答
1

听起来您可能应该创建一个新课程。

它确实取决于“播放器”类的用途。如果它是在应用程序的多个部分中使用的泛型类型(听起来确实如此),那么将应用程序的单个部分的自定义添加到 Player 类中可能是一件坏事。

但是,如果(例如)Player 类仅在您的应用程序的单个用户界面中使用,并且其目的是仅代表应用程序的该部分的 Player,那么添加这些字段可能是合理的做法。

于 2009-02-27T01:54:34.637 回答
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

我发现每当我不得不问这个问题时,答案总是创建一个新课程。我认为我从未见过有太多类的系统,或者有两个本应是一个的系统。

曾经。

于 2009-02-27T01:55:21.843 回答
0

你将如何使用国家数据?你会一直在写作player.getCountry().getName()吗?如果是这样,您可以编写一个内部player.getCountryName()调用的函数country.getName()

研究得墨忒耳法则,它说你应该限制你的来电者对你内部的了解程度。

于 2009-02-27T06:00:28.510 回答