JavaScript 做为一种融合了多种编程范式的语言,灵活性非常高。前端开发人员需要根据场景在不同编程范式间自如切换。进一步需要创造领域特定语言抽象业务问题。 本次课程会帮助你了解不同编程范式的起源和适用场景。掌握 JavaScript 在不同的编程范式特别是函数式编程范式下的使用。进一步帮助你掌握创建领域特定语言的相关工具和模式。
常见的编程范式:
- 过程化编程 / 命令式编程
适合解决线性的算法问题,强调“自上而下”、“精益求精”的设计方式。
- 事件驱动编程
事件驱动常常用于用户与程序的交互,通过图形用户接口(鼠标、键盘、触摸板)进行交互式的互动。当然,也可以用于异常的处理和响应用户自定义的事件等等。
- 面向对象编程 OOP
面向对象的程序设计包括三个基本概念:封装性、继承性、多态性。
对象
面向对象的程序设计的抽象机制是将待解决问题抽象为面向对象的程序中的对象。利用封装是每个对象都拥有个体的身份。程序便是成堆的对象,彼此通过消息的传递,请求其他对象进行工作。
类
对象是类的实体。类是相似对象的集合。类中的对象可以接受相同的消息。即,类包含和描述了具有共同特性(数据元素)和共同行为(功能)的一组对象。
封装
封装(有时也被称为信息隐藏)就是把数据和行为结合在一个包中,并对对象的使用者隐藏数据的实现过程。信息隐藏是面向对象编程的基本原则,而封装是实现这一原则的一种方式。封装使对象呈现出“黑盒”特性,这是对象再利用和实现可靠性的关键步骤。
接口
接口不是类,而是对符合接口需求的类所作的一套规范。接口说明类应该做什么但不指定如何作的方法。一个类可以有一个或多个接口。
继承
继承的思想就是允许在已存在类的基础上构建新的类。一个子类能够继承父类的所有成员,包括属性和方法。
继承的主要作用:通过实现继承完成代码重用。继承是一种规范的技巧,而不是一种实现的技巧。
多态
多态提供了“接口与实现分离”。 多态不但能改变程序的组织架构和可读性,更便利与开发出“可扩充”的程序。
继承是多态的基础,多态是继承的目的。
合理的运用基于类继承的多态、基于接口继承的多态和基于模版的多态,能增强程序的简洁性、灵活性、可维护性、可重用性和可扩展性。
函数式编程 Functional Programming
函数式编程即是在软件开发的工程中避免使用共享状态(Shared State)、可变状态(Mutable Data)以及副作用(Side Effects)。
函数式编程中整个应用由数据驱动,应用的状态在不同纯函数之间流动。