前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

面向对象方法那些你不知道的事(一)

qiguaw 2024-09-18 23:17:00 资源文章 27 ℃ 0 评论

定义:

面向对象方法(Object-Oriented Method)是一种基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统的方法。

面向对象方法包括面向对象分析、面向对象设计、面向对象编程,面向对象测试,面向对象维护是目前应用范围最广的设计方法。

发展历史:

面向对象方法起源于面向对象的编程语言(Simula)。正是通过Smalltalk80的研制与推广应用,使人们注意到OO方法所具有的模块化、信息封装与隐蔽、抽象性、继承性、多样性等独特之处,这些优异特性为研制大型软件、提高软件可靠性、可重用性、可扩充性和可维护性提供了有效的手段和途径。面向对象方法从编程发展到设计、分析,进而发展到整个软件生存周期。

80年代以来,人们将面向对象的基本概念和运行机制运用到其它领域,获得了一系列相应领域的面向对象的技术。面向对象方法已被广泛应用于程序设计语言、形式定义、设计方法学、操作系统、分布式系统、人工智能、实时系统、数据库、人机接口、计算机体系结构以及并发工程、综合集成工程等,在许多领域的应用都得到了很大的发展。

20世纪90年代,人们推出了许多不同的面向对象设计和分析方法,Booch方法,Coad-Yourdon方法,Jacobson方法(OOSE),Rumbaugh方法(OMT)是当中最为流行的4种方法。随着时间的推移,这些方法之间开始出现了交叉,但它们仍然都拥有自己的独特表示法。这些不同表示法的使用给建模者造成了混乱,因为不同方法中的相同符号的含义可能并不相同。例如,实心小圆圈在OMT方法中是一个多重性指示器,在Booch方法中则是聚合符号。这个阶段就是后来人们所说的方法之战阶段。UML结束各种方法的概念及表示法不一致的局面,同时也采用了其他许多方法中的优良思想。目前,UML已经成为面向对象分析和设计方法的事实上的标准。

面向对象优点:

1. 强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,这就使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确地反映问题域。

2. OO方法所具有的模块化、信息封装与隐蔽、抽象性、继承性、多样性等独特之处使得系统扩展性,重用性和可维护性大大增加,复杂性得到有效的控制

3. 贯穿软件生存周期全过程的一致性,提供了便于各类相关人员交流共同语言。从OOA开始使用与问题域一致的概念、词汇、原则及表示法,这种一致性保持到设计、编程、测试、维护等各个阶段,对于整个软件生存周期的开发、维护及管理活动都具有重要的意义。

基本概念:

对象:是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。

类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

消息:是对象之间进行通信的数据结构,对象可以发送消息给其它对象,要求执行指定功能,对象响应该请求,并完成相应任务。目前在大部分面向对象的编程语言中,消息其实就是函数(或过程)调用。

继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。继承关系的语义:“is a kind of”。

依赖:" ... uses a ..." 此关系最为简单,也最好理解,所谓依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,而并不持有对它的引用。

一个人自创生就需要不停的呼吸,而人的呼吸功能之所以能维持生命就在于吸进来的气体发挥了作用,所以说空气只不过是人类的一个工具,而人并不持有对它的引用。 一般而言,依赖关系在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用。

关联:" ... has a ...",类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。

聚合:关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。

组合:是关联关系的一种,是比聚合关系强的关系。它直接要求包含对象对被包含对象的拥有以及包含对象与被包含对象生命期的关系

文章参考:

http://blog.csdn.net/u014206695/article/details/52927896

http://blog.csdn.net/luohai859/article/details/7336487

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表