OOP对小脚本有意义吗?

2024-04-24 11:33:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我主要用python编写小脚本,大约50-250行代码。我通常不使用任何对象,只是简单的过程编程。在

我知道OOP的基础知识,我以前也在其他编程语言中使用过object,但对于小脚本,我看不出对象如何改进它们。但也许这只是我有限的OOP经验。在

我是不是因为没有更努力地使用对象而遗漏了一些东西,还是OOP对于小脚本来说没有多大意义?在


Tags: 对象代码脚本object过程编程经验编程语言
3条回答

面向对象编程虽然有助于将系统表示为现实世界的对象(希望能使大型软件系统更易于理解),但并不是所有解决方案的灵丹妙药(尽管有些人教过)。在

如果您的系统没有从OOP提供的东西中获益(比如数据抽象、封装、模块化、多态性和继承),那么产生OOP的所有开销是没有意义的。但是,如果您发现随着系统的增长,这些问题成为您更关心的问题,那么您可能需要考虑转向OOP解决方案。在

编辑:作为一个更新,您可能需要去Wikipedia阅读关于各种criticisms of OOP的文章。记住,OOP是一种工具,就像你不会对所有事情都使用锤子一样,OOP也不应该用于所有事情。考虑这项工作的最佳工具。在

我使用任何最适合手头问题的范式——不管是程序性的、面向对象的、功能性的。。。程序大小不是一个标准,尽管(稍微有点差距)一个更大的程序可能更倾向于利用OOP的优势——一个类的多个实例、子类化和重写、特殊方法重载、OOP设计模式等等。这些机会中的任何一个都可以完美地出现在一个小脚本中,它发生在一个更大的概率上。在

此外,我讨厌global语句,因此如果自然过程方法需要它,我几乎总是会切换到OOP——即使唯一的优势是能够使用限定名而不是需要global的裸名。在

总的来说,绝对没有必要“更加努力”——只要问问自己“这里是否有机会使用(a)多个实例(等等)”,它很快就会成为第二天性,也就是说,你会发现机会,而不必每次都有意识地提醒自己去寻找它们,你的编程也会因此而得到改进。在

使用oop开发的一个不幸的习惯是Objectophrenia,即在我们编写的每一段代码中都看到对象的错觉。在

之所以会发生这种情况,是因为我们误以为存在统一的对象定理。在

你写的每一段代码,你开始把它看作是对象的模板,以及它们是如何融入我们的个人计划的。尽管这可能是一个小任务,但我们会被这样一个问题所诱惑——我是否可以将这些东西放入我的类存储库中,以便将来使用?我是否在这里看到了一个我以前写过的代码的模式,以及我的对象透视告诉我有一天我会写的代码?我能把我现在的任务安排成这些模式之一吗。在

这是一个讨厌的习惯。通常,最好不要这样。但是,当你发现你写的每一点代码都以某种方式落在模式中,你重构/重新调整这些模式,直到它满足了你的大部分需求时,你就会有一种满足感和成就感。在

当一个程序员有妄想症(强迫性的面向对象的障碍)时,问题就开始出现了,并且没有意识到模式有例外,试图过度操纵模式来覆盖更多的情况是错误的。这就像我童年的痴迷,每天早上我吃早餐时,总想把一块面包完全涂上黄油或果酱。有时候,最好把面向对象的感知抛在脑后,快速而肮脏地执行手头的任务。在

公认的工业格言80-20可能是一个很好的衡量标准。用一种不同于人们通常理解的方式来使用这句格言,我们可以说80%的时间都有一种面向对象的感知。20%的时间-快速编码。在

沉浸在物体中,但最终你必须抵制它吞噬你。在

您可能还没有完成足够的编程,因为如果您已经完成了,您将看到您已经完成的所有模式,并且您还将开始相信您尚未应用的模式。当你开始看到这种客观的幻觉,是时候小心不要被它们吞噬了。在

相关问题 更多 >