面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展过程的产物。人类对这个”发展过程“的认识经历了漫长的 人类进化的历史、经历了几千年的文明变化。
在1981年8月发行的Byte杂志上发布了有关其“面向对象”编程系统的信息。Smalltalk中的Object清楚地反映了莱布尼兹(Leibnizian)Monadic对世界的模拟:可以创建或销毁对象(单子或原子),不管它们存在或不存在。它们封装了私有数据,这些私有数据是从外部无法访问的,但是可以通过提供的函数方法或行为被访问,包括通过接收消息来更改其内部状态。至关重要的是,对象本身决定了接收消息时的处理方式,在命名过程时如果未找到对象时,这就决定了某种程度的间接性和隔离性。
充分利用面向对象的思想,利用这种软件结构方式意味着对软件的设计和构建方式有完全不同的思考。
关于如何以面向对象的方式创建软件系统的基本思想对于那些对软件系统的本质没有先入之见的人来说更为自然。
面向对象的编程消除了我们要为其构建软件的事物(业务领域或需求)与所构建软件之间的概念障碍。
第一次工业革命是蒸汽机的发明,而真正工业革命是依靠规模化的工业流程来代替手工、纺织工艺。而工业流程则依赖于标准化的、可互换的零件之间明确规定的接口。这就编程中的接口的来源。
(对象(object):由一组数据结构( 数据结构是对象的属性)和处理此结构的方法( 处理此结构的方法是对象的行为)两者组成。
类(class):有相同行为的对象称之为一类
)
加深对对象和类的认识可以通过下面两个图
(图一:person类)
(图二:Operation类)
对象的责任可以定义为:
*
a)私有和公共对象数据
*
b)相关对象引用
*
c)它可以派生的东西
*
对象都有对外服务的接口,通过继承可以复用。对象隐藏内部服务的实现,通过聚合(怎样实现?本文不分析)可用复用。
面向对象更加容易使我们达到社会科技巨变的境界。可复用,可扩展,维护和替换更加方便。