在这个javascript场景中,OOP使用是否合理?

时间:2011-08-08 22:17:40

标签: javascript oop

OOP在这里是否合理?

今天是我在一家小型初创公司工作的第一天。这家初创企业有一位杰出的JS开发人员,他拥有大量使用OOP的自定义js,用于模态窗口等功能。更重要的是,他几乎将所有数据显示(例如用编辑/删除按钮显示的数据行)转换为某种形式的javascript OOP表示。

我们要做的一件事就是删除大量使用模态,只在主窗口上显示内容。通常这只是意味着复制/粘贴一些html / php代码,否则会在模态窗口中显示。但是,由于这个开发人员在OOP中开发了所有内容,并且所有这些与UI相关的对象彼此紧密相关,因此远离模态窗口似乎需要更多的人工/修复。

当我接受这份工作时,我很兴奋,并且认为我可以获得一些实际操作OOP的经验。但是一天之后,我还没有看到它的实用性,最坏的情况似乎非常适得其反。

我错过了什么吗?什么时候在javascript中使用OOP是好/坏的想法?

4 个答案:

答案 0 :(得分:0)

我认为这是一种很好的实用方法,但与任何其他语言的OOP一样,它既可以实现也可以很好地实现。 JavaScript的OOP技术可以正确地分离代码而不是严格的实用方法,所以我不认为这是一个坏主意。但是从它的声音来看,你可能想尝试重构设计以使其更简化,然后移动代码......

担心在JavaScript中执行所有操作,具体取决于其中的操作,例如安全性,可维护性,跨浏览器支持等。

HTH。

答案 1 :(得分:0)

OOP可以是一个非常强大的工具,可以确保不需要重写代码并且代码是可维护的,但是如果它不正确地完成,它可能会产生相反的效果。 Design Patterns用于确保代码是可维护的,而OOP是其中很重要的一部分。 This book似乎是这个主题的权威。

答案 2 :(得分:0)

由于JavaScript中的所有内容都是一个对象,因此很难避免代码中的某种程度的OOP-iness。 OTOH,大多数JavaScript框架更多地关注语言的功能方面。

无论如何,我怀疑你真正遇到的问题是UI和数据模型之间没有足够的解耦。如果是这样,那么请查看明确区分它们的框架 - 例如knockout.js。

我会说OOP倾向于将大脑弯曲成错误的形状。我记得在OOP和OOAD的早期阶段,对象应该负责将自己呈现为GUI的想法非常普遍。由于存在问题,因此核心OOP原则的直接结果是对象的行为应该与其数据相结合。

答案 3 :(得分:0)

如果不了解其实施的更多细节,很难说方法是否良好。但是,Web应用程序在Javascript中在客户端上执行大量OO设计(以及MVC或MVP设计模式)的趋势很强烈。此外,页面的大部分呈现都是使用Javascript完成的,因此用于此目的的Backbone.js(或上面提到的Knockout.js)框架非常受欢迎,并且非常有趣。

Javascript本身实际上是一种非常好的面向对象语言(请参阅Douglas Crockford所说的内容),目前正在经历一种复兴,特别是对于年轻的开发者。