当前位置: 代码迷 >> JavaScript >> 数据建模,如何将这样的结构建模成类?
  详细解决方案

数据建模,如何将这样的结构建模成类?

热度:36   发布时间:2023-06-05 10:33:52.0

我上了一本书

Class Book
{
    String name;
    String id;
}

它具有一些常规属性,还具有其他一些库特定的属性,因此库“ xyz”中的书号“ 111”具有标题属性,而库“ abc”中的书号“ number”具有numberOfPages和尺寸,因此,它看起来像:

Class Book
{
    String name;
    String id;
    String xyzTitle;
    int abcNumberOfPages;
    float abcHeight;
    float abcWidth;
}

但是,这看起来不太好。 为什么不为图书信息创建单独的类

Class XYZBookInfo
{
   String title;
}

Class ABCBookInfo
{
   int numberOfPages;
   float height;
   float width;
}

Class Book
{
   String name;
   String id;
   XYZBookInfo xyzInfo;
   ABCBookInfo abcInfo;
}

到目前为止很好,但是; 如果几个库共享某些属性怎么办! 如果XYZ和ABC库对Book的重量感兴趣,而另一个ZZZ库不感兴趣?

在哪里增加重量属性? 即使我们创建一个WeightedBookInfo类,然后从中创建XYZBookInfo和ABCBookInfo子类,我们也必须在两个类的实例中复制权重值!

我正在尝试创建一个表示此结构的xcode核心数据模型,但这并不重要,这是一个与概念相关的问题,而不是特定于技术的问题。

您需要将知识内容与表述分开,否则将严重限制其有用性。 另外,对物理属性也应加以概括。 所以也许:

具有属性(例如书名和作者)的书籍类。 (此类可以从出版物等继承。)

bookEdition的界面,该界面具有ISBN,日期,出版商,格式(平装书,精装书,手机,pdf等)

用于PhysicalPublication的接口,该接口将具有numberOfPages

具有尺寸和重量的某种物理接口。

  相关解决方案