在 Ruby 脚本中组织 类

Organizing classes in Ruby script

我正在写一个小游戏。我有:

class MyGame
  ...
  class_methods
  a bit of game logic
end

# after my_game unwrapped code

putss
get.chomps
methods, loops (to be DRY)
interaction with user, returning values

是否有将代码包装在一起的正确方法?在任何 class 或模块中不在 my_game class 之后包装代码是否正确,或者我应该始终将我的代码放在 classes/modules 中吗?

我会将功能包装在模块和 classes 中,因为它有一些好处:

a) 您可以轻松地为 classes 中的代码编写测试(以及通过将它们作为混入包含在 classes 中并测试 classes 中的模块) b) 您可以控制 functions/methods 的可见性,并且您实际上可以创建一个界面,以防您的游戏消费者需要访问的不仅仅是游戏 class c) 通过创建部分游戏功能的新实现者更容易扩展游戏部分的功能

也就是说,仅以面向对象的方式编写是没有教条的。在某些情况下(也许对于将用作命令行脚本的脚本),仅具有一些函数和执行这些函数的代码可能就足够了(特别是如果脚本通常简单且简短)。

关于您正在构建的小游戏的结构,我的建议是寻找交互,"verbs" 需要发生的(即对象之间发送的消息),然后您就会来使用将发送这些消息(方法)的 classes,我相信设计和构建游戏会变得容易得多。

顺便推荐一本对软件设计方向有帮助的好书:

http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330

希望以上对你有所帮助。