对象(Object):包含一定的数据结构和状态的实体。
操作(Operation):作⽤用于对象的⾏行为,如访问和处理对象的状态。
封装(Encapsulation):定义对象和操作,只提供抽象的接⼝口,并隐藏它们的具体实现。
继承(Inheritance):通过继承现有类型的性质,创建新的数据类型,⽽而不影响原有数据类型。
多态性(Polymorphism):判定数据类型集合中各类型的区别,使程序可以按照它们的共同特性来书写。
OO(object-oriented): 基于对象概念 , 以对象为中⼼ , 以类和继承为构造机制 , 来认识 , 理解 , 刻画客观世界和设计 , 构建相应的软件系统的⼀门方法 ; 模拟人类的思维⽅式 , 使开发 , 维护 , 修改更加容易。
OOA:Object-Oriented Analysis,面向对象分析
分析阶段所做的主要工作是理解问题和需求构模,将现实世界中的问题映射到问题域。
面向对象分析利用面向对象的概念和原则,来分析、认识和理解客观世界,将客观世界中的实体抽象为问题域中的对象, 分析客观世界中问题的结构,明确为完成系统功能,对象间应具有的联系和相互作用,最后形成概念模型(也叫域模型) 。
OOA阶段需要做的工作:
1)系统应有哪些对象构成?
2)每个对象应有哪些属性和服务?
3)对象间应有怎样的联系?
OOD:Object-Oriented Design,面向对象设计
设计阶段则主要是确定实现用户需求的方法,即怎样做才能满足用户需求,并构造出系统的实现蓝图。
面向对象设计引入了面向对象的概念和原则来指导设计工作。OOD首先从OOA的结果开始,并将其从问题域映射到实现域,为满足实现的需要,还要增加一些类,并对原有类及属性进行调整。此外,还要完成应用控制、人机交互界面的设计等。
OOD的主要工作有: 1)问题域部分的设计主要是对OOA结果进行改进和精化,有以下几个方面:
属性:有些属性在分析阶段有助于问题的理解,而到了设计阶段则可以由其他属性导出或根本没必要保留,而且必要时需增加一些属性。
服务:OOA只给出了服务的接口,其具体实现算法要在OOD阶段完成,同样对于不合理的部分应予以调整。
类及对象:在OOA阶段有助于问题理解的一些类在OOD阶段成为冗余,需要删除,而为了优化调整继承关系还要增加一些类。所有的类都确定以后还要明确哪些类的对象会引发哪些类创建新对象。
结构: 对类间结构进行优化调整。
2)人机交互与应用控制部分的设计
交互界面的设计:与界面有关的类及类间结构的设计,必要时需要画出界面原形。
应用控制部分的设计:这部分对象主要是便于程序控制,使程序结构更合理。
阶段主要输出物:类图和详细的序列图,关系数据模型,必要时需要界面原形
OOP(object-oriented programming): 面向对象程序设计
把组件的实现和接⼝分开,并且让组件具有多态性 ----( 抽象 , 继承 , 封装 , 多态 ) 面向接⼝编程。