我计划用Ruby编写一个CLI版的大富翁游戏,这将是我在Ruby中做的第一个大型项目。我大部分的编程经验都是使用函数式编程语言,如Clojure和Haskell等。我对面向对象编程有很好的理解,但我没有设计面向对象程序的经验。
现在,问题来了。
在大富翁游戏中,棋盘上有许多空间。大多数空间是属性,其他空间则有其他功能。
为每个空间创建一个类会不会很明智呢?我想创建一个Space类,所有其他空间都从它继承,然后创建一个Property类,它从Space继承,然后为每个属性创建一个类,它们从Property继承。这意味着会有很多类,这让我觉得这种方式不适合我要做的事情。
我的另一个打算是使用'inherited'钩子方法来跟踪所有属性,以便在需要时搜索它们并从未购买列表中删除它们。
这种问题似乎在许多程序中出现,所以我的问题是:是否有更好的方法来解决这个问题,我是否缺少面向对象设计方面非常关键的知识?
如果我的问题很愚蠢,请原谅,我对面向对象程序设计一窍不通。
谢谢。
现在,问题来了。
在大富翁游戏中,棋盘上有许多空间。大多数空间是属性,其他空间则有其他功能。
为每个空间创建一个类会不会很明智呢?我想创建一个Space类,所有其他空间都从它继承,然后创建一个Property类,它从Space继承,然后为每个属性创建一个类,它们从Property继承。这意味着会有很多类,这让我觉得这种方式不适合我要做的事情。
我的另一个打算是使用'inherited'钩子方法来跟踪所有属性,以便在需要时搜索它们并从未购买列表中删除它们。
这种问题似乎在许多程序中出现,所以我的问题是:是否有更好的方法来解决这个问题,我是否缺少面向对象设计方面非常关键的知识?
如果我的问题很愚蠢,请原谅,我对面向对象程序设计一窍不通。
谢谢。