上QQ阅读APP看书,第一时间看更新
1.3 面向对象
面向对象(Object-oriented Programming, OOP)是我们在讨论编程范式时经常提到的内容。它帮助各种语言,尤其是命令式语言解决了一些更高层面的问题,例如模型的包装和组合。
面向对象把计算机程序视为一组对象的集合,而每个对象都可以接收并处理其他对象发来的消息,换句话说,面向对象认为计算机程序的执行过程就是一系列消息在各个对象之间的传递。
前端开发者们听到的面向对象的概念,多来自其他领域(如Java)的开发者。Java语言强调并贯彻面向对象思想和它的三大要素(继承、封装、多态)。以Java为代表的语言主要通过Class类实现继承和封装,所以我们看到的Java代码多是Class类和一个个的模块包。
因为与Java密切关系,前端也引入了Class类和诸多语法糖,以便于开发者编写类似的代码。其他很多主流语言也都使用了Class类这一设定,如代码清单1-2所示。
代码清单1-2 Python中的Class类
class Student(object): def __init__(self, name, score): self.name = name self.score = score def get_grade(self): if self.score >= 90: return 'A' elif self.score >= 60: return 'B' else: return 'C' rogge = Student('Rogge', 97) print(rogge.name, rogge.get_grade())
实际上,前端的很多概念都存在面向对象的设计思想,比如我们框架中的组件概念。大家可以暂时放下Class类的内容,思考一下组件或者前端的业务模块是怎样实现继承(扩展)、封装、多态和消息传递的。
面向对象的编程思想在处理复杂系统时,会先基于高效的信息抽象(将事物或过程抽象成一类信息的实体,继而形成信息岛屿),再寻求建立事物或过程之间的联系。
面向对象是一种能很好地处理现实中已有事物和过程,并抽象到计算机信息系统中的方法。