面向对象,更适合JavaScript

面向对象程序设计是软件开发中一个很庞大很复杂的话题,它并非仅仅学会类、继承、封装、多态这些面向对象编程语法元素就表示掌握的,这些语法元素只是实现面向对象程序的工具, 就像砖块、水泥能搭建小屋,也能造高楼大厦,然而在这里重要的不是砖块水泥,而是其它因素。因此,利用面向对象技术写程序,语法元素不是关键,关键在于组织这些语法元素的方法和技巧。前端

 

这些方法和技巧,好比说那威名远播的23个面向对象设计模式,各类面向对象设计原则,如面向接口编程、封装变化、高内聚、低耦合等等,都有不少相关书籍介绍。程序员

 

众所周知,使用面向对象技术的目的是为了写好代码,使代码易读、易维护、足够灵活。web

 

然而,使用Java、C#之类的血统纯正的面向对象程序设计语言却很是难以实践面向对象的方法与技巧, 即便代码中随处可见类、封装、继承、多态,代码质量仍是很是差,有面向对象之形,无面向对象之实。数据库

 

这之中的缘由在于,一般使用Java、C#语言写的代码逻辑很是简单,这两门语言在web领域使用居多,而web领域的程序多数逻辑只是对数据库的增删查改,这些逻辑根本没有面向对象技巧大显身手的余地,俗话说,实践出真知,既然没有办法实践,天然也没有办法很好的掌握, 试问一下,有谁作个网站能用到复杂的设计模式的,若是真有,大多数状况下也是强行使用。 所以,若是想经过写普通的Java网站,学好面向对象技术,很难, 事倍功半。编程

 

然而, 在网站的另外一端,面向对象技术却能大显神通,那就前端JavaScript领域。理论上讲,JavaScript都不能算面向对象程序设计语言,它没有真正的类,也没有继承,要实现这些特性必须经过另类的模拟。不过这并无问题,事实上面向对象的精髓并非class、extends这些关键字,而是使用这些关键字的方法,只要功力深厚,一草一木皆为武器;只要掌握方法,即便没有这些关键字,经过模拟这些关键字也能写出像样的面向对象程序。后端

 

为何面向对象设计应用,在纯正的面向对象设计语言中,还不如山寨的JavaScript? 这是由于前端JavaScript程序的逻辑足够复杂,固然,我说的JavaScript程序不是在网页上弹出一个对话框、让网页中某张图片在隐藏和显示之间切换,我说的JavaScript程序是指那些复杂的特效,一个独立的特效代码都在千行以上的那种,好比说功能完善的日历控件,支持拖拽节点以及动态加载数据的导航树形菜单、富文本编辑器、各类具备可玩性的JS小游戏等等, 这类特效都有大量的代码,且逻辑复杂, 写这些程序时,若是只是简单粗暴的代码堆砌, 那极有可能没法最终完成任务,即便完成也毫无维护性可言,这种状况下就强烈须要面向对象这样的技术来简化代码的复杂性,这也是为何面向对象程序设计技巧与方法在前端JavaScript能很好实践的缘由。设计模式

 

总而言之,若是你是一个后端程序员,想提升本身编写高质量代码, 然而却苦于没办法实践书上所学的面向对象技术,那么不妨去写写JavaScript, 当你面对的不是数据库的增删查改,而是合理的组织巨量DOM元素,使之达到你想要的效果, 那么,面向对象不可或缺, 你不用不行,而不是你想用却没有场景可使用。使用JavaScript,会让你更有写程序的感受,由于你再也不是数据的搬运工。编辑器

相关文章
相关标签/搜索