我应该什么时候使用OOPerl?

我应该什么时候使用OOPerl?,perl,oop,Perl,Oop,我只是在学习Perl 什么时候建议使用OO Perl而不是非OO Perl 我倾向于总是选择OO,除非这个项目只是一个

我只是在学习Perl

什么时候建议使用OO Perl而不是非OO Perl

我倾向于总是选择OO,除非这个项目只是一个<10行的代码片段


TIA

我认为你不应该用代码行来衡量它

你是对的,通常当你只是在写一个简单的脚本时,OO的开销可能太大了,但是我认为你应该更灵活地使用10行代码

在所有情况下,当您使用ooperl Rememebr(或鼠标)时,

有一段关于这一点的文章。这不是一条你必须遵守的规则,但这可能是我在不太了解你正在做什么的情况下给出的更好的建议


这里是一个更好的链接到这本书的地方

关于同一个主题有很好的讨论@


从一开始就使用OO肯定会更容易。唯一的例外是编译启动是一个问题(Moose目前确实有编译时开销)。

这个问题与Perl没有太大关系。问题是“如果有选择,我应该在什么时候使用OO?”这一“选择”位是因为在某些语言(例如Java)中,您真的没有任何选择

答案是“当它有意义的时候”。想想你要解决的问题。这个问题是否符合类和对象的OO概念?如果确实如此,那就使用OO。否则,请使用其他范例

Perl相当灵活,您可以轻松地编写过程、函数或OO Perl,甚至可以将它们混合在一起。不要因为其他人都在做OO而被挂断。学会为每项任务使用正确的方法

所有这些都需要经验和实践,所以一定要尝试所有这些方法,甚至可以尝试一些较小的问题,并以多种方式解决它们,看看它们是如何工作的。

:

了解何时使用面向对象设计的10个标准
  • 设计是大型的,或者可能会变得大型
  • 当数据聚合成明显的结构时,尤其是当每个聚合中都有大量数据时 例如,IP地址不是一个好的候选地址:只有4字节的信息与IP地址相关。通过海关的移民有很多与他相关的数据,如姓名、原籍国、携带的行李、目的地等

  • 当数据类型形成允许我们使用继承的自然层次结构时。 继承是OO最强大的特性之一,使用它的能力是一个标志

  • 当对数据的操作因数据类型而异时 GIF和JPG的裁剪方式可能有所不同,即使它们都是图形

  • 以后可能需要添加数据类型时 OO为您提供了未来扩展的空间

  • 当操作员能够最好地显示数据之间的交互时 某些关系最好通过使用运算符来表示,运算符可以重载

  • 组件的实现可能发生变化时,尤其是在同一程序中
  • 当系统设计已经是面向对象的时
  • 当大量客户机使用您的代码时 如果您的代码将分发给将使用它的其他人,则标准接口将使维护和安全更容易

  • 当您有一段应用了许多不同操作的数据时 例如,图形图像可能会模糊、裁剪、旋转和调整

  • 当操作类型具有标准名称时(检查、过程等) 对象允许您拥有
    DB::check
    ISBN::check
    Shape::check
    等,而检查类型之间不存在冲突


  • 谢谢,帕特!!!妈的,我真不敢相信我还没听说过驼鹿。我喜欢。非常好。。。由于驼鹿的重量,我一直在避开它,但我没听说过老鼠。一定要试试那个!穆西的体重用词不当。它为一个进程增加了大约5mb的内存,如果您在Test::More和Test::Exception上合理地更新了,那么它的依赖项小于20。有些地方鼠标(因为它的设计选择)根本无法到达驼鹿想要的地方。