我什么时候应该使用OO Perl?

时间:2008-11-18 17:07:21

标签: perl oop

我只是在学习Perl。

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

除非项目只是< 10行。

TIA

5 个答案:

答案 0 :(得分:19)

From Damian Conway

  

了解何时使用面向对象设计的10个标准

     
     
      
  1. 设计很大,或者可能会变大

  2.   
  3. 当数据聚合成明显的结构时,特别是如果每​​个聚合中有大量数据

         

    例如,IP地址不是一个好的候选者:只有4个字节的信息与IP地址相关。通过海关的移民有很多与他有关的数据,如姓名,原籍国,携带行李,目的地等。

  4.   
  5. 当数据类型形成允许我们使用继承的自然层次结构时。

         

    继承是OO最强大的功能之一,使用它的能力是一个标志。

  6.   
  7. 对数据的操作因数据类型而异

         

    GIF和JPG可能会以不同的方式完成裁剪,即使它们都是图形。

  8.   
  9. 以后可能需要添加数据类型

         

    OO为您提供了将来扩展的空间。

  10.   
  11. 当数据之间的交互最好由运营商

    显示时      

    通过使用可以重载的运算符可以最好地显示某些关系。

  12.   
  13. 当组件的实施可能发生变化时,尤其是在同一个程序中

  14.   
  15. 当系统设计已经面向对象时

  16.   
  17. 当大量客户使用您的代码时

         

    如果您的代码将分发给将使用它的其他人,标准界面将使维护更加轻松。

  18.   
  19. 当您拥有应用了许多不同操作的数据时

         

    例如,图形图像可能会模糊,裁剪,旋转和调整。

  20.   
  21. 当操作类型具有标准名称(检查,处理等)时

         

    对象允许您拥有DB::checkISBN::checkShape::check等,而不会在支票类型之间产生冲突。

  22.   

答案 1 :(得分:6)

对同一主题@ PerlMonks进行了很好的讨论。

拥有Moose肯定会更容易总是使用单词go中的OO。唯一真正的例外是编译启动是一个问题(Moose目前有编译时间开销)。

答案 2 :(得分:5)

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

你是对的,通常当你只是编写一个简单的脚本时,OO可能过多,但我认为你应该对10行的方法更加灵活。

在所有使用OO Perl Rememebr到use Moose(或鼠标)的情况下

答案 3 :(得分:3)

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

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

Perl非常灵活,您可以轻松编写过程,功能或OO Perl,甚至可以将它们混合在一起。不要因为其他人而忙着做OO。学习为每项任务使用正确的方法。

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

答案 4 :(得分:1)

Damian Conway在此Perl Best Practices中有一段话。你必须遵循它并不是一个规则,但是在我不知道你正在做什么的情况下我可以给出更好的建议。

如果这是一个更好的链接到本书的地方,那么这是the publisher's page