假如有几间房子,几件家具,每件家具都有一个ID号对应一间房子问题:当我想添加一件新家具的同时,想给它一个对应房子的ID号,请问如何设计?Class House
{
List<Fitment> fm;
}Class Fitment
{
int Insert(//参数对应Fitment的属性列表);
}Fitment类需要加房间ID号这个属性吗?如果要加,那House里面的 fm 感觉没啥意义了。
因为在现实生活中,家具被创造出来时,还不属于任何房间,也就是一开始没有房间ID号这个属性,必须在后期通过对象的一个“指定房间”的方法来指定房间ID号,也就是要在House 类中加一个添加家具的方法。有点糊涂,应该是在House中添加家具时指定家具的房间ID,还是在家具构造时候就指定房间ID?谁能写一段完整的代码参考。
{
List<Fitment> fm;
}Class Fitment
{
int Insert(//参数对应Fitment的属性列表);
}Fitment类需要加房间ID号这个属性吗?如果要加,那House里面的 fm 感觉没啥意义了。
因为在现实生活中,家具被创造出来时,还不属于任何房间,也就是一开始没有房间ID号这个属性,必须在后期通过对象的一个“指定房间”的方法来指定房间ID号,也就是要在House 类中加一个添加家具的方法。有点糊涂,应该是在House中添加家具时指定家具的房间ID,还是在家具构造时候就指定房间ID?谁能写一段完整的代码参考。
Class House
{
}
Class Fitment
{
public House house{get;set;}
}
没有分配房间时house就是null
{
public int ID {get;set;}
public string Name {get;set;}
public House house {get;set;} public int Insert(House _house)
{
this.house = _house;
return DataProvider.InsertFitment(this.ID, this.Name, house.ID);
}
}
这样行吗?
{
List<Fitment> FitmentS{get;privite set;}//房间has家具,实际上只需get即可,因为
//list<XX>本身就是可操作的列表,外面 house.FitmentS.add()、house.FitmentS.Insert()都可以}
Class Fitment
{
// 没必要再家具上提供Insert方法,原因上面已经说了
}对象分析上就是如此,至于你的困惑,实际上是把实例和class混了,实例才具有自己的特殊属性另外产生这个困惑的另一个原因是:你把关系数据库的那套理论参入进来了,而对象分析本来和关系数据库间是有不适配的地方的(不然也不会出啥ORM了这类幺蛾子框架了)