Perl 中的面向对象编程入门
1. 面向对象编程简介
在软件开发领域,面向对象编程(OO)是当下备受瞩目的方法。过去,在理解和实现复杂系统时,功能分解(自上而下设计)一直占据主导地位。开发者会先编写高级伪代码,再逐步细化,直至能转化为具体的实现语言,Nicklaus Wirth 将这种方法称为逐步细化。后来,结构化方法如 SA/SD 出现,它运用了多种工具和符号,如数据流图、过程规范、数据字典、状态转换图和实体关系图等,不过重点仍在系统开发的过程方面,而非动态(状态转换)或结构(数据)层面。
近年来,人们意识到系统的功能变化往往比其操作的数据变化大得多。例如,人事信息系统对员工的基本信息了解后就相对稳定,但功能却会随着管理重组、税法、医疗保险变化等因素不断调整。
基于此,如今解决问题的方式发生了转变,数据及其结构被置于首要位置,代码围绕重要数据组织成模块,这样做有诸多好处:
- 数据库与代码同步 :代码按数据组织,避免了面向对象程序与关系数据库(RDBMS)之间所谓的“阻抗不匹配”问题,实际上,关系模型和对象模型并无根本冲突,一些数据库厂商已开始提供抽象数据类型。
- 易于理解和维护 :数据结构更易识别,以航空公司的飞行规划系统为例,飞机、航线和航段等实体为设计提供了清晰的焦点,最终的设计和实现也更易解释和维护。
- 便于团队协作 :以数据为中心的模块可轻松分配给团队成员,每个成员负责特定数据的修改,成为项目中其他成员的组件供应商。
面向对象编程不仅以数据为中心,还致力于封装实际的数据结构,只暴露有限且文档完善的接口