0

我对Objective C编码比较陌生,所以请帮助我:

在我的代码中,我有一个名为 GameData 的类,它是一个单例,它包含一些方法,并且正是这个类来管理评分系统。我的问题是,我应该为存储在 GameData 中的分数创建另一个类,还是应该保持这种方式?我想确定一下,因为我有很多分数管理方法!谢谢!!

4

2 回答 2

1

职责分离 (pdf)是一个很好的软件设计原则。根据您的需求以及您在代码中预见的更改向量,将代码移动到专用的记分类应该会有所帮助。

此外,请务必检查其他重要的面向对象设计原则,例如SOLID 原则

于 2012-12-22T00:05:08.610 回答
1

一般来说,如果您发现您在对象 A 中创建了很多方法来处理 A 中包含的特定值或特定值集,则应将这些值或值组合到具有所有 B 值关联方法的类 B 中。

当您自己注意到这个问题时,您可能应该将与Score数据关联的值和方法移动到一个单独的对象中。

对于你移动的方法,问问自己这个方法是一个Score应该知道的东西,还是GameData经理应该知道的东西。

例如,aScore可能不应该知道其他分数的存在,因为它有GameData责任管理这些分数的组成。相反,GameData经理不应根据某些内部Score指标(例如pointsGainedsecondsToFinish)手动对分数进行排序,而应依赖于Score实现与其他有意义的对象的比较方法Score。在这个例子中,通过只给对象提供对他们重要的信息,你可以很容易地改变一个Score排名到其他分数的方式,而无需修改GameData类。

于 2012-12-22T00:05:09.223 回答