我在决定如何组建班级时遇到了一些麻烦。我所拥有的是棒球运动员课程和必要的属性:
有些事情可以解决这个问题:
1)将统计数据放入词典
2)制作一个团队课程,可以保存团队中所有玩家的一般信息,如天气和投手匹配。
但是,此后我还有10个属性。
看到这个(Class with too many parameters: better design strategy?)给了我一些想法,但不知道它们是否理想。
1)使用字典 - 但是后来无法使用方法来计算统计数据(或者必须使用单独的函数)
2)使用args / kwargs - 但是从我可以收集到的内容来看,这似乎是针对可变数量的参数,并且我的所有参数都是必需的。
3)分成小班 - 我已经把它分解了一下,但不知道我能不能再进一步了。
有没有更好的方法来构建它而不是列出一堆列出参数的类?
答案 0 :(得分:0)
如果从数据库设计的角度考虑这个问题,那么拥有一个具有以下参数的BaseballPlayer
对象可能会很奇怪:
因为某些与特定BaseballPlayer
相关的东西仍然相对固定,例如名称等,但这些其他东西是流动的和短暂的。
如果您将此设计为具有各种数据库表的应用程序,则此处列出的每个事物都可能代表一个单独的表,BaseballPlayer
与这些其他表的关系可能是当前的和前Team
等。
因此,我可能会将问题分解为更多的类,包括StatsClass
和Team
类(这可能是Opponent
真正的......)。< / p>
但这一切都取决于你想做什么。通常当您向后弯曲以将数据塞入结构或执行相同操作以将其取回时,可以重新设计设计以使您的工作更轻松。