由于几乎所有模块都有,并且反复说我们不应该重新发明轮子,因为我不为CPAN编写模块,所以我不需要使用OO.但我的问题是,专业的Perl代码主要是用OO风格编写的吗?
简而言之,只有你想要代码可重用性和可读性; 为了编写简单的系统脚本或代码来执行一项任务,那么这是一种浪费,特别是如果它是那种不能很好地记录的东西.例如,在编写复杂程序时,通过编写一系列好的模块来组织一个人的想法并模块化问题确实很有帮助.在处理具有多个开发人员的项目时,使用面向对象的好处会呈指数级增长.
我认为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点开始新近醒来,睡觉,你老板的老板的老板尖叫着你在公司破产之前修复该死的软件.)
| 归档时间: |
|
| 查看次数: |
544 次 |
| 最近记录: |