1.面向对象的基本概念
面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。
(1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。用计算机语言来描述,对象是由一组属性和对这组属性进行的操作构成的。对象包含三个基本要素,分别是对象标识、对象状态和对象行为。例如,对于姓名(标识)为Joe的教师而言,其包含性别、年龄、职位等个人状态信息,同时还具有授课等行为特征,Joe就是封装后的一个典型对象。
(2)类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。例如,Joe是一名教师,也就拥有了教师的特征,这些特征就是教师这个类所具有的。如图3-1所示。
类和对象的关系可理解为,对象是类的实例,类是对象的模板。如果将对象比作房子,那么类就是房子的设计图纸。
(3)抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。对象是现实世界中某个实体的抽象,类是组对象的抽象。
(4)封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。
(5)继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。如图3-2所示,Dog和 Cat类都是从Mammal继承而来,具有父类的 eyeColor属性特征,因此在子类中就可以不用重复指定eyeColor这个属性。
(6)多态:使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。如图3-3所示,Rectangle 和 Circle都继承于Shape,对于Shape而言,会有 getArea0的操作。但Rectangle 和 Circle的 getArea()方法的实现是完全不一样的,这就体现了多态的特征。
(7)接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。可以将接口理解成为类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类去完成。
(8)消息:体现对象间的交互,通过它向目标对象发送操作请求。
(9)组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并具有相对稳定的公开接口。
(10)复用:指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。
(11)模式:描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案三个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。
2.统一建模语言与可视化建模
统一建模语言(Unified Modeling Language,UML)用于对软件进行可视化描述、构造和建立软件系统的文档。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。
需要注意的是,UML是一种可视化的建模语言,而不是编程语言。UML 标准包括相关概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的,强调在软件开发中对架构、框架、模式和组件的重用,并与最佳软件工程实践经验进行了集成。
在 UML中,使用各种不同的符号元素画成图形,用以表示系统的结构和行为。UML图提供了对系统进行建模的描述方式,主要包括:用例图(Use Case Diagram)、类图(Class Diagram)、对象图(Object Diagram)、组件图(Component Diagram)、部署图(Deployment Diagram)、状态图(State Diagram)、序列图(Sequence Diagram)、协作图(Collaboration Diagram)、活动图(Activity Diagram)等。(注:UML有不同版本)UML视图用来划分系统中的各种概念和组件,是表达系统某一方面特性的UML建模组件的子集。在某类视图中可以使用一种或多种特定的UML 图来可视化地表示视图中的各种概念。
RUP(Rational Unified Process)是使用面向对象技术进行软件开发的最佳实践之一,是软件工程的过程。它对所有关键开发活动提供了使用准则、模板、工具等。其涵盖的最佳实践经验包括:迭代式开发、需求管理、使用以组件为中心的软件架构、可视化建模、验证软件质量及控制变更等。
3.面向对象系统分析
面向对象系统分析运用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。
面向对象系统分析的模型由用例模型、类对象模型、对象关系模型和对象-行为模型组成。
4.面向对象系统设计
面向对象系统设计基于系统分析得出的问题域模型,用面向对象方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。面向对象系统设计主要包括用例设计、类设计和子系统设计等。
领取专属 10元无门槛券
私享最新 技术干货