gpt4 book ai didi

class - 有两个由 1 :1 cardinality? 相关的类是否有意义

转载 作者:行者123 更新时间:2023-12-05 01:35:22 24 4
gpt4 key购买 nike

我目前正在学习计算机工程,我记得一个叫做信息系统导论类(class)的教授说,两个以 1:1 基数相关的类(class)是没有意义的。

例如:我有 Client类和 Telephone类(class)。让我们假设客户端只能有一部手机。教授说创建Telephone class没有意义, 电话应该是 Client 的一个属性类(class)。我完全同意他的看法。

但是现在我正在上软件工程课,教授(不一样)没有对这个问题发表任何评论,现在我真的对此感到困惑。

正确的做法是什么?

最佳答案

我会说你的信息系统导论教授是正确的。还有你的 SE 教授(假设他缺乏评论使他成为逆向者)。根据您的要求和您正在使用的域,它们都是正确的。但是没有任何其他细节,很难为您建模,我倾向于您的 CE 教授所说的话。记住您学到的所有有趣的小原则:KISS、DRY 等,并将它们应用到您的问题中。

Client永远不可能有多个电话号码,并且您的域中没有其他实体需要电话号码,然后是单独的 Telephone课是没有必要的。在现实世界中,如果您的要求含糊不清,请从您的客户那里了解更多信息。

如果有人在路上决定 Client s 可以接受多个电话号码,或者将另一个实体引入到需要电话号码的域中,这是一个相当容易实现的重构。

考虑到这一点,让我们假设您的 Client有一个单独的 Address包含电话号码的类。也许那个 Address类被另一个类重用,也许 InvoiceShipment ,其中 Address可以在这两种情况下共享或应用。在本例中,您可能需要 Address ( Telephone ) 成为它自己的类。

在您的示例中,Telephone可能有点太做作了。如果它有许多属性( AreaCodeInternationalPrefixNumber 等),您会希望它成为一个单独的类以供重用,但如果 Client只需要一个名为 Telephone 的字符串值用户输入只是为了引用,那么成为它自己的类可能没有意义。

关于class - 有两个由 1 :1 cardinality? 相关的类是否有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com