Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Ruby脚本组织类_Ruby_Oop_Scripting - Fatal编程技术网

用Ruby脚本组织类

用Ruby脚本组织类,ruby,oop,scripting,Ruby,Oop,Scripting,我正在写一个小游戏。我有: 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 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

是否有正确的方法将代码包装在一起?在任何类或模块中不在我的游戏类之后包装代码是正确的,还是我应该始终将代码放在类/模块中?

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

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

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

关于你正在构建的小游戏的结构,我的建议是寻找交互,需要发生的“动词”(即对象之间发送的消息),然后你会找到发送这些消息(方法)的类,我相信设计和构建游戏会变得容易得多

顺便说一下,下面是一本有助于软件设计方向的好书:


希望以上帮助。

我认为您应该在设计软件方面添加更多的研究,或者学习一些资源,或者浏览github中的软件。不过,我在下面的回答中提供了一些指导方针。谢谢。我还是不知道你为什么不理我。。我的问题很清楚。我只是想知道我是否应该更好地组织我的代码。@Ann实际上,这不是一个明确的问题。并没有组织代码的方法,所以这是一个基于观点的问题。