如何编码eBay项目?

时间:2013-07-22 14:45:28

标签: oop ebay

单挑:这是一个新手问,所以我希望我可以让我的问题清楚,我也希望它有意义:)我花了一些时间在网上寻找答案,真的不能得到它。

我一般想知道如何在eBay(或类似)中编码对象的层次结构。我的问题基于一个例子:

让我们考虑一个可转换的沙发。在树中(在这种情况下更多是DAG),我猜它有父母喜欢'沙发'和'床',因此继承沙发和床的属性。让我们说它因此具有属性'座位数'和属性'睡眠维度'。

那么,我的可转换沙发是一个类'ConvertibleCouch'的实例,它继承了类'Couch'(其中'座位数'将被定义)和'Bed'(其中'睡眠尺寸'将被定义)或它是一个更通用的类'Item'的实例,它有方法在数据库中搜索相关属性并使用类'Attributes'获取/设置它们?

我很抱歉我似乎无法使我的问题更清楚,如果没有意义,请询问详细信息!

非常感谢!

编辑:

我一般想知道在这种情况下定义项目属性的最佳方法以及如何利用层次结构(或类别)。例如,如果item是沙发,则item应该没有属性'author'。另一方面,沙发和可转换沙发必须具有许多属性才能共享。所以我的问题转化为:这个“获取给定项目类别的相关属性”信息应该使用基于类别层次结构相互继承的类来编码,还是应该写在沙发上有“颜色”的数据库中, “座位数量”,“宽度”等,但没有“作者”,可以通过item.get_attributes('couch')等方法访问?

1 个答案:

答案 0 :(得分:1)

我想我可以为你提供一些清晰度。

  

“我通常想知道如何编码对象的层次结构   易趣“

由于Ebay是一个封闭的软件源,我们只能猜测它是如何编码的。我认为ebay首先拥有用户对象。 “用户”对象引用了数据库中的多个项目,即该特定用户要么出售或出价的项目。一个项目可以是正在出售的东西,或者正在出价的东西,并且可能具有“所有者属性”,可以使用获取者访问该属性,但是在项目的初始列表期间仅设置一次。每个项目都可能引用其上的投标集合,其中包含用户放置它们的时间,实际时间以及实际出价的数量。

  

“那么,我的敞篷沙发是'ConvertibleCouch'类的一个实例   继承自班级'Couch'“

根据层次结构的编码方式,我假设您的ConvertibleCouch类具有以下层次结构:

物品>长椅> ConvertibleCouch

所以是的,它是ConvertibleCouch的一个实例,但是创建子类的实例也会创建其父类的实例。在子类的构造函数中,也调用父类的构造函数。

c#中的以下示例C# MSDN Inheritance包括:父类A和继承A的类B.

  public class A
{
    public A() { }
}

public class B : A
{
    public B() { }
}

子类固有地创建了它的父类的实例,因为ConvertibleCouch在技术上仍然是沙发的实例。

同样,我们只能推测ebay的做法。希望这有帮助!