Perl代码主要是用面向对象设计的吗?

sid*_*com 8 oop perl

由于几乎所有模块都有,并且反复说我们不应该重新发明轮子,因为我不为CPAN编写模块,所以我不需要使用OO.但我的问题是,专业的Perl代码主要是用OO风格编写的吗?

amp*_*ine 8

简而言之,只有你想要代码可重用性和可读性; 为了编写简单的系统脚本或代码来执行一项任务,那么这是一种浪费,特别是如果它是那种不能很好地记录的东西.例如,在编写复杂程序时,通过编写一系列好的模块来组织一个人的想法并模块化问题确实很有帮助.在处理具有多个开发人员的项目时,使用面向对象的好处会呈指数级增长.

  • OO风格的代码可重用性和可读性含义是什么?OO样式用于数据抽象和建模.它不能解决可读性和/或可重用性问题.这是关于建筑和设计.我看过很多糟糕的OO样式代码,这些代码绝对不可读且不可重用.使用OO进行数据抽象和建模以及函数的功能样式是我的最佳建议.OO风格对于C,Java,C#等不良表达语言是必要的.对于Perl来说并非如此. (8认同)
  • @Hynek -Pichi- Vychodil - 我认为可以认为OO技术提供的代码划分是使代码更具表现力的另一种工具,这增加了可读性,可维护性和可重用性.如果表达性在右手中导致这些属性,并且OO技术提供表达性,则OO技术可以在正确使用时提供这些属性.如果我还没有足够的打击每个人,这当然都取决于程序员. (4认同)

dao*_*oad 5

我认为OOP主要是将行为绑定到数据结构的一种方式.每当我的数据结构看起来会变得复杂时,我就会组成对象.

这有助于集中和抽象与操作数据相关的代码.这反过来减少了重复的代码并简化了重构.使用纯粹的程序代码可以实现相同的目的.我发现OOP使关系更直观,更容易以直观的方式进行概念化.

考虑这个结构:

my $foo = {
    meezle => [qw( a d g e l z )],
    twill  => {
        prat => 'qua',
        nolk => 'roo',
    },
    chaw => 7,
    mubb => [ 123, 423,756, 432 ],
    ertet => 'geflet',
};
Run Code Online (Sandbox Code Playgroud)

当我结束这样的结构(嵌套和非均匀)时,我开始思考"对象".当我发现自己编写大量代码来访问,修改和验证结构中的数据时,我确信无疑.

由于大多数非平凡的项目都需要非平凡的数据操作,因此我至少在大多数工作的某些部分使用对象.

我可能会也可能不会在我的OOP中全力以赴.通常有一些东西不是对象.可能有也可能没有应用程序基类.某些元素可以作为普通过程代码处理.一些可能包括功能方法.这完全取决于考虑到项目要求的意义.

最重要的是要记住,你的代码必须对负责维护它的穷人是明确的.(这可能是你在6个月内,从凌晨4点开始新近醒来,睡觉,你老板的老板的老板尖叫着你在公司破产之前修复该死的软件.)