面向对象设计
面向对象设计简介
·面向对象设计定义
·面向对象设计历史
·面向对象设计设计模式
·面向对象的设计原则
·面向对象设计语言
·面向对象设计步骤
·面向对象设计过程中要展开...
面向对象设计基础
·面向对象设计基础理论
·从面向对象设计谈接口和抽...
·从面向对象设计谈 c#中接口...
·面向对象软件设计具体例子分析
面向对象设计定义
OOD 是一种解决软件问题的设计范式(paradigm),一种抽象的范式。使用 OOD 这种设计范式,我们可以用对象(object)
来表现问题领域(problem domain)的实体,每个对象都有相应的状态和行为。
OOD 的目标是管理程序内部各部分的相互依赖。为了达到这个目标,OOD 要求将程序分成块,每个块的规模应该小到可
以管理的程度,然后分别将各个块隐藏在接口(interface)的后面,让它们只通过接口相互交流。比如说,如果用 OOD 的
方法来设计一个服务器-客户端(client-server)应用,那么服务器和客户端之间不应该有直接的依赖,而是应该让服务器的
接口和客户端的接口相互依赖。
这种依赖关系的转换使得系统的各部分具有了可复用性。还是拿上面那个例子来说,客户端就不必依赖于特定的服务
器,所以就可以复用到其他的环境下。如果要复用某一个程序块,只要实现必须的接口就行了。
面向对象设计历史
计算机科学中对象和实例概念的最早萌芽可以追溯到麻省理工大学的 PDP-1 系统。这一系统大概是最早的基于容量架构
(capability based architecture)的实际系统。另外 1963 年 Ivan Sutherland 的 Sketchpad 应用中也蕴含了同样的思想。
对象作为编程实体最早是于 1960 年代由 Simula 67 语言引入思维。Simula 这一语言是 Ole-Johan Dahl 和 Kristen Nygaard
在挪威奥斯陆计算机中心为模拟环境而设计的。(据说,他们是为了模拟船只而设计的这种语言,并且对不同船只间属性的
相互影响感兴趣。他们将不同的船只归纳为不同的类,而每一个对象,基于它的类,可以定义它自己的属性和行为。)这种
办法是分析式程序的最早概念体现。在分析式程序中,我们将真实世界的对象映射到抽象的对象,这叫做“模拟”。Simula
不仅引入了“类”的概念,还应用了实例这一思想— — 这可能是这些概念的最早应用。
20 世纪 70 年代施乐 PARC 研究所发明的 Smalltalk 语言将面向对象程序设计的概念定义为,在基础运算中,对对象和消息
的广泛应用。Smalltalk 的创建者深受 Simula 67 的主要思想影响,但 Smalltalk 中的对象是完全动态的— — 它们可以被创建、
修改并销毁,这与 Simula 中的静态对象有所区别。此外,Smalltalk 还引入了继承性的思想,它因此一举超越了不可创建实
例的程序设计模型和不具备继承性的 Simula。
此外,Simula 67 的思想亦被应用在许多不同的语言,如 Lisp、Pascal。
面向对象程序设计在 80 年代成为了一种主导思想,这主要应归功于 C++— — C 语言的扩充版。在图形用户界面(GUI)日
渐崛起的情况下,面向对象程序设计很好地适应了潮流。GUI 和面向对象程序设计的紧密关联在 Mac OS X 中可见一斑。
Mac OS X 是由 Objective-C 语言写成的,这一语言是一个仿 Smalltalk 的 C 语言扩充版。面向对象程序设计的思想也使事
件处理式的程序设计更加广泛被应用(虽然这一概念并非仅存在于面向对象程序设计)。一种说法是,GUI 的引入极大地推
动了面向对象程序设计的发展。