我决定采用自下而上的方法进行构建,首先只创建一个四十个空间的棋盘并围绕它进行移动,然后再转移到与空间交互。我意识到我对最佳处理方式很不确定,并且我在两种设计思路之间犹豫:
1. 给每个空间都分配一个对象,所有子类都是Space对象,因此可以通过空间对象本身来定义交互。我可以通过为每种类型的空间实现不同的land()方法来实现这一点。 2. 只给属性和公共设施(因为每个属性都有独特的功能)对象,并在程序的主类(或我称之为Board)中创建处理购买/租赁等的方法。像“go”和“super tax”这样的空间可以通过一小组条件语句来实现,以检查玩家是否在特殊的空间上。
选项1显然是面向对象的(我觉得是正确的)方法,但我希望只需要从程序的主类处理用户交互。换句话说,我不希望空间对象与玩家进行交互。为什么?呃,到目前为止我所编写的许多代码都具有这种简单性,但我不确定对于更大的项目来说,这是否是一种幻想。我真的应该在一个完全分离的类中处理用户交互吗?
正如你所看到的,我对这种情况感到相当困惑。有没有什么方法可以解决这个问题?还有,有没有任何关于实际面向对象设计的建议,可以帮助解决这个问题?
编辑:我只想指出,我觉得我在这个问题上失去了一点重心。我对将OO和任何外部操作(命令行、网络、GUI、文件管理等)结合起来的一般方法感兴趣。