我正在写一个小游戏。我有:
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
是否有正确的方法将代码包装在一起?在任何类或模块中不在my_game类之后包装代码是正确的,还是应该总是将我的代码放在类/模块中?
答案 0 :(得分:2)
我会在模块和类中包装功能,因为它有一些好处:
a)您可以轻松地为类中的代码编写测试(对于模块,通过将它们作为mixins包含在类中并测试类) b)你可以控制功能/方法的可见性,你可以实际创建一个界面,以防你有一个游戏消费者需要访问的东西不仅仅是游戏类 c)通过创建游戏部分功能的新实现者,更容易扩展游戏部分的功能
也就是说,只有以面向对象的方式写作才有教条。在某些情况下(可能用于将用作命令行脚本的脚本),只需要一些函数和代码执行这些函数就足够了(特别是如果脚本很简单且通常很短)。
我对你正在建立的小游戏结构的建议是寻找互动,动作"需要发生的事情(即在对象之间发送的消息),然后你会提出发送这些消息(方法)的类,设计和构建游戏将会变得更加容易,我相信。
顺便说一句,一本有助于设计软件方向的好书如下:
http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330
希望以上帮助。