面向对象的软件开发

本文深入探讨了面向对象编程的概念,通过比较Smalltalk、Pascal、Lisp等语言的OO特性,阐述了面向对象设计的原则和优势。从类、对象到继承和多态,逐一解析关键概念,并提供了实际开发中的应用示例,帮助读者深化理解和提升编程技能。
摘要由CSDN通过智能技术生成

面向对象的软件开发

Linda M. Northrop
(本文转载自软件工程专家网www.21cmm.com,不代表gigix观点)

1 历史回顾

  针对日趋复杂的软件需求的挑战,软件业界发展出了面向对象(OO)的软件开发模式。目前作为针对“软件危机”的最佳对策,OO技术已经引起人们的普遍关注。最初被多数人看作只是一种不切实际的方法和满足一时好奇心的研究,现在得到了人们近乎狂热的欢迎。许多编程语言都推出了支持面向对象的新版本。大量的面向对象的开发方法被提出来。关于OO的会议、学术研讨班和课程极受欢迎。无数专业的学术期刊都为这一话题开辟了专门的版面。一些软件开发合同甚至也指明了必须使用OO的技术和语言。面向对象的软件开发对于90年代,就向是结构化的软件开发对于70年代那样让人着迷,而且OO的发展势头还在日益加速。

  诸如“对象”和“对象的属性”这样的概念,可以一直追溯到1950年代初。它们首先出现于关于人工智能的早期著作中。然而,OO的实际发展却是始于1966年 (当年文化大革命在中国爆发) 。 当时Kisten Nygaard和Ole-Johan Dahl开发了具有更高级抽象机制的Simula语言。Simula提供了比子程序更高一级的抽象和封装;为仿真一个实际问题,引入了数据抽象和类的概念。 大约在同一时期,Alan Kay正在尤他大学的一台个人计算机上努力工作,他希望能在其上实现图形化和模拟仿真。尽管由于软硬件的限制,Kay的尝试没有成功,但他的这些想法并没有丢失。70年代初期,他加入了Palo Alto研究中心(PARC),再次将这些想法付诸实施。

  在PARC,他所在的研究小组坚信计算机技术是改善人与人、人与机器之间通讯渠道的关键。在这信念的支持下,并吸取了Simula的类的概念,他们开发出Smalltalk语言;1972年PARC发布了Smalltalk的第一个版本。大约在此时,“面向对象”这一术语正式确定。Smalltalk被认为是第一个真正面向对象的语言。 Smalltalk 的目标是为了使软件设计能够以尽可能自动化的单元来进行。在Smalltalk中一切都是对象-----即某个类的实例。最初的Smalltalk的世界中,对象与名词紧紧相连。Smalltalk还支持一个高度交互式的开发环境和原型方法。这一原创性的工作开始并未发表,只是视为带浓厚试验性质的学术兴趣而已。

  Smalltalk-80是PARC的一系列Smalltalk版本的总结,发布于1981年。1981年8月的<<BYTE>>杂志公布了Smalltalk开发组的重要结果。在这期杂志的封面图上,一个热气球正从一个孤岛上冉冉升起来,标志着PARC的面向对象思想的启航。该是向软件开发界公开发表的时候了。起初,影响只是渐进式的,但很快就跃升到火爆的程度。热气球确实启航了,而且影响深远。早期Smalltalk关于开发环境的研究导致了后来的一系列进展:窗口(window),图标(icon),鼠标(mouse)和下拉式window环境。Smalltalk语言还影响了80年代早期和中期的面向对象的语言,如:Object-C(1986), C++(1986), Self(1987),Eiffl(1987),Flavors(1986). 面向对象的应用领域也被进一步拓宽。对象不再仅仅与名词相联系,还包括事件和过程。1980 Grady Booch首先提出面向对象设计(OOD)的概念。然后其他人紧随其后,面向对象分析的技术开始公开发表。1985年,第一个商用面向对象数据库问世。1990年代以来,面向对象的分析、测试、度量和管理等研究都得到长足发展。目前对象技术的前沿课题包括设计模式(design patterns)、分布式对象系统和基于网络的对象应用等。

2 动因

  为什么面向对象运动发展到了现在这样火暴的程度?部分是源于人们长久以来的一个希望:人们希望它,象以前其他的软件开发技术一样,能够满足软件开发对于生产效率、可靠性、易维护性、易管理等方面的更高、更快、更强的迫切需求。除此之外,还有许多原因都促使了它的流行。

  面向对象的开发强调从问题域的概念到软件程序和界面的直接映射;

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值