3、面向对象开发方法.ppt
第3章 面向对象开发方法,信息系统分析与设计,目录,Back to school,Back to school,3.1 面向对象方法的基本含义,面向对象方法(Object Oriented Method) 是一种把面向对象的思想应用于软件开发法过程,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。,定义一:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。,定义二: 面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系统(系统责任)的方法。,面向对象的分析过程就是认识客观世界的过程。,3.1 面向对象方法的基本含义,面向对象本质内涵 面向对象的思想以对象为基础,辩证唯物主义以物质为基础。让我们通过对两者基本思想的类比来加深对面向对象本质内涵的理解。,辩证唯物主义认为世界是物质的,物质是运动的,物质是普遍联系的,物质具有特殊性和普遍性。物质既有静态的一面又有动态的一面,外因通过内因作用于物质。,面向对象的思想 问题域是由对象构成的,每个对象拥有各自的属性和方法,属性用于描述对象的物理特征,而方法用于描述对象的行为,对象是属性和行为的统一体。 从对象出发构造软件系统。强调直接以问题域中的对象为中心来认识问题和解决问题,软件系统对象是问题域对象的抽象。,3.1 面向对象方法的基本含义,问题域对象,系统责任对象,对象类,抽象,抽象,软件系统,类的实例化,抽象与实例化,3.1 面向对象方法的基本含义,消息、接口、对象,3.1 面向对象方法的基本含义,3.1 面向对象方法的基本含义,特点1:认为客观世界是由各种“对象”所组成的,任何事物都是对象,每一个对象都有自已的运动规律和内部状态,每一个对象都属于某个对象“类”。复杂的对象可以是由相对比较简单的对象以某种方式而构成的。,面向对象方法的特点:,面向对象 = 对象 + 类 + 继承 + 消息,特点3:对象间的相互联系是通过传递“消息”来完成的,消息就是通知对象去完成一个允许作用于该对象的操作。,特点2:通过类比,发现对象间的相似性,即对象间的共同属性和行为,这就是构成对象类的依据,现实世界中的对象,3.2 面向对象的基本概念,对象的基本概念 对象是建立面向对象系统所依赖的基本单元。在现实世界中,可以将任何客观存在的事物看作一个对象,如一个人、一辆汽车、一张光盘,一台电脑,甚至一个星球。,汽车对象的属性和方法,对象的属性部分又称为数据部分,用来描述它的某些特征,对象的方法部分又称为程序部分,通常是一段程序代码,定义了一个操作,每个操作决定对象的一种功能或行为。,3.2 面向对象的基本概念,学生类,3.2 面向对象的基本概念,类的基本概念 类是一组具有相同属性和相同操作的对象的集合。 类看作是对象的模板(Template),抽象地描述了属于该类的全部对象共有的属性和方法。类与对象的关系是抽象与具体的关系,类是多个对象的综合抽象对象是类的个体实例,3.2 面向对象的基本概念,3.3 面向对象方法的特点,面向对象基本特征,继承,封装,多态,继承(泛化),组合(聚合),覆盖,重载,抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。 抽象包括两个方面,一是过程抽象,二是数据抽象 过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体。 数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过这些操作来访问和修改。,3.3 面向对象方法的特点,3.3 面向对象方法的特点,封装 封装是面向对象的特征之一。 封装是指把对象的属性和方法包围起来,避免外界的干扰和不确定性,对数据的访问只能通过接口进行。 封装保证模块具有良好的独立性,便于系统维护,对系统的修改仅限于类的内部。 封装是继承的前提,没有封装就没有继承。,3.3 面向对象方法的特点,继承是面向对象的特征之一。 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中已定义的属性和方法。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承是多态的前提,没有继承就没有多态。,3.3 面向对象方法的特点,类的继承关系,3.3 面向对象方法的特点,多态性是面向对象的特征之一。 多态是指允许不同类的对象对同一消息作出不同的响应。 实现多态,有二种方式:覆盖,重载。 覆盖:是指子类重新定义父类的函数; 重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。,3.4 面相对象方法的优点,从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律。,面向对象方法开发的系统易于维护,其体系结构易于理解、扩充和修改。面向对象方法开发的软件系统有对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。当对象的接口确定以后,实现细节的修改不会影响其他对象,易于维护。,面向对象方法中的继承机制有力支持软件的复用。在同一应用领域的不同应用系统中,往往会涉及到许多相同或相似的实体,这些实体在不同的应用系统中存在许多相同的属性和操作,也存在着一些不同的应用系统所特有的属性和操作。可以通过继承来复用公共的属性和操作。,3.4 面相对象方法的优点,本章小结,面向对象方法是当前最流行的系统开发技术,运用对象、类、消息传递、封装、继承、多态等概念来构造系统的开发方法,面向对象方法的基本思想是用对象的观点建立问题空间的模型。Booch的方法,Coad-Yourdon的OOA/OOD方法以及Jacboson的OOSE是3个比较典型的面向对象方法。,主要内容: 面向对象思想,面向对象方法的概念及特点,面向对象与结构化方法的区别,消息专递机制及组成,经典的面向对象方法。 重 点: 面向对象思想,对象和类的基本概念,消息,抽象、继承,封装,多态。 难 点: 过程抽象,数据抽象,静态联编,动态联编。,本章小结,