【发布时间】:2019-01-27 18:50:23
【问题描述】:
为这个可能超级简单的问题道歉。我正在尝试理解 OOP。我已经阅读了教程,但其中许多教程都非常简化,并且通过给自己一个“真实”项目,我遇到了大多数教程似乎没有涵盖的障碍。这是一个我有点想理解的场景:
如果我正在制作一个非常基本的体育游戏(想想国际足联),我目前有 3 个对象:
- 音高对象
- 团队对象
- 播放器对象
我遇到了我的第一道理解障碍,因为我不希望玩家只是团队的延伸。毕竟在现实生活中,我们都是人类的对象,具有一个属性,在我们成为团队的子对象之前,我们会告诉我们我们属于哪个团队。
这方面的最佳做法是什么?
我应该是:
- 创建玩家对象,然后将每个对象添加到存储在团队对象的数组中?这就是我在程序上的做法。
- 针对玩家存储球队。
- 将球员与球队对抗。
- 按团队扩展球员(我想避免这种情况,除非它真的完成了)
这只是现在的大脑练习,所以我并没有真正的代码,但是
$team1 = new teamObject('red');
$player1 = new players('John');
$team1->addToTeam($player1);
这让我印象深刻,因为它不起作用,因为在 teamObject 类中我无法在传递的玩家函数上调用任何玩家类函数?
【问题讨论】:
-
当然,如果他们在一个团队中,你可以调用他们的方法。如果您不能拥有包含其他对象的对象,那么 OOP 将毫无用处。事实上,这种事情——组合对象——应该比创建继承层次结构更受青睐。您(实际上,所有第一次学习 OOP 的程序员)都应该阅读这本书:smile.amazon.com/… 它通过多个示例教授了如何思考 OOP 的一般方法。
标签: php oop object object-oriented-analysis