Asp.net 什么时候最好使用新类而不是添加到现有类

Asp.net 什么时候最好使用新类而不是添加到现有类,asp.net,sql,vb.net,class,class-design,Asp.net,Sql,Vb.net,Class,Class Design,在web应用程序的业务层中有一个名为Player的类 玩家类有PlayerID、CategoryID和CountryID字段 Player类中的函数调用数据访问层中PlayerDB类中的函数,该函数反过来调用存储的proc,该proc从Player表返回PlayerID、CategoryID(类别表外键)和CountryID(国家表外键)的数据 现在,我想在上面的调用中添加Country Name和Country Image(url路径),从Country表中返回每个CountryID的新字段

在web应用程序的业务层中有一个名为Player的类

玩家类有PlayerID、CategoryID和CountryID字段

Player类中的函数调用数据访问层中PlayerDB类中的函数,该函数反过来调用存储的proc,该proc从Player表返回PlayerID、CategoryID(类别表外键)和CountryID(国家表外键)的数据

现在,我想在上面的调用中添加Country Name和Country Image(url路径),从Country表中返回每个CountryID的新字段

我的问题是,我是将国家名称和国家图像作为附加字段添加到Player类中,还是有名为country(BLL)和CountryDB(DAL)的新类以及一个新的存储过程

我想做的是最佳实践,而不是最简单的方法

如果相关的话,我使用的是ASP.NET、VB.NET和SQL2005


你可能知道我是个新手,所以如果我在问题中没有使用正确的术语,请原谅我。我希望你能明白。创建一个新类。如果它作为一个独立的逻辑实体有意义,那么它应该是它自己的类。

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

听起来您可能应该创建一个新类

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


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

听起来您可能应该创建一个新类

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


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

我发现,每当我需要问这个问题时,答案总是创建一个新类。我想我从来没有见过一个系统有太多的类,或者有两个应该是一个的类


曾经。

我发现每当我不得不问这个问题时,答案总是换一门新课。我想我从来没有见过一个系统有太多的类,或者有两个应该是一个的类


永远。

您可以创建一个国家级,并使用对象组合,将国家级作为玩家级的属性

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

您可以创建一个country类,并使用对象组合将country类作为player类的属性

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

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


调查一下,上面说你应该限制打电话的人对你的内部信息的了解。

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

调查一下,这意味着你应该限制你的呼叫者对你内部的了解