面试总结面向对象,什么是面向对象?#《面向对象分析与设计》学习笔记#

网上关于介绍面向对象的博客很多,但是大多数是博主们自己的理解。小编正好买了机械工业出版社《面向对象分析与设计》,相信书面的学习能让你对“面向对象”有不同理解。

目录:

1. 传统软件开发的问题(了解)

    1.1 功能分解法

    1.2 结构化方法

    1.3 信息建模方法

    1.4 小结

2. 面向对象的基本思想

    2.1 面向对象概述

    2.2 面向对象基本思想

    2.3 面向对象基本原则

    2.4 统一建模语言

--------------------------------------------------------------------------------------------

1. 传统软件开发的问题(发展史介绍,可以只看红字)

1.1 功能分解法

这是一种早期的开发方法,它是以系统需要提供的功能为中心来开发系统的。基本思想是:首先定义顶层功能,然后把功能分解为子功能,同时定义功能之间的接口。对较大的子功能还要进一步分解,直到给出名学定义,进而根据功能设计数据结构和算法。

功能分解法以系统需要提供的功能为中心来组织系统,也提出模块化的思想,在当时很受欢迎。但是该方法开始容易深入难,刚开始的功能划分很直接,但功能和功能接口这些系统成分却无法直接映射问题域(实际问题)中的事物,对于需求变化的适应能力也很差,需求的变化一定导致功能模块的变化,从而引起接口变化和其它模块变化,造成全局性的影响。

1.2 结构化方法

结构化方法包括结构化需求分析、设计、编程、测试方法等。使用数据流图、加工说明和数据字典构造需求分析模型。其总体设计部分要给出被建系统的模块结构,详细设计部分要为各模块提供关于算法的详细描述。

结构化方法更强调对问题域的分析,但使用的概念仍然不能直接映射到问题域中的事务。需求的变化往往会引起相应的加工和数据流的变化。对于功能稳定的应用领域,如某些科学计算,上述方法适用。但对于众多的领域是不适用的。

1.3 信息建模方法

信息建模方法是在实体联系模型(ER模型)的基础上发展起来的。该方法以成为实体的数据集合作为系统的构造块,以数据结构为中心来开发软件。因为有相当多的人认为实体是稳定的,并且实体联系模型由相当好的理论基础,所以当时被广泛采用。

但其弱点也很明显,因为它仅对问题域中事物的数据方面进行了建模,而对其功能行为在模型中没有体现。

1.4 小结

包括上述方法在内的所有传统方法都只注重系统的一个或少数几个方面,建模能力很弱,并且都没有较强的描述系统的动态行为的能力。

面向对象方法是在传统方法的基础上发展而来。并且面向对象从多维度把建立的模型与问题域进行直接映射,在整个开发中均采用一致的概念和表示法,采用诸如封装、继承和消息机制等使得问题域的复杂性在模型上得以控制。

2. 面向对象的基本思想

2.1 面向对象概述

面向对象不仅是一些具体的软件开发技术和策略,也是一整套看待软件系统与现实世界关系的理论。面向对象方法解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式从不同的抽象层次和方面来构造软件系统,与传统的方法有所不同。特别是,面向对象把一切看成是对象。

人们已达成共识,面向对象方法是一种运用对象、类、继承、聚合、关联、消息、封装、多态等概念和原则来构造软件系统的开发方法。以下详细阐述其基本思想。

2.2 面向对象基本思想

① 客观世界中的事务都是对象,对象直接存在一定的关系;

② 用对象的属性表示事物的数据特征,用对象的操作表示事物的行为特征;

③ 对象把它的属性和操作结合在一起,成为独立不可分的实体,并且对外屏蔽它的内部细节;

④ 通过抽象对事物进行分类;

⑤ 复杂对象可以用简单对象作为构成部分;

⑥ 通过在不同程度上使用抽象原则,可以得到较一般和特殊的类。特殊类继承一般类的属性与操作。(比如哺乳动物是一般类,鲸鱼作为特殊类,除了继承哺乳动物,还可以添加游泳的方法);

⑦ 对象之间通过消息进行通信,从而实现对象之间的动态联系;

⑧ 通过关联表达类之间的静态关系(比如教师和同学,在UML语言中用一根线连起来) 

以下是面向对象思想的描述图:

2.3 面向对象基本原则

篇幅过长,简要介绍。

包括①抽象、②分类、③封装、④消息通信(直接发给特定对象,其规格包括消息名、入口参数、返回参数)、⑤多态性、⑥行为分析(关联、继承、聚合)、⑦复杂性控制(分包,把模型元素组织成不同粒度的系统单位)

2.4 统一建模语言

这里只做简要介绍,详细需要大家自己学习。

Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言

---------------------------------------------------------------------------------------------

画图写文都花了挺长时间,各位看官满意的话还请点个赞!

猜你喜欢

转载自blog.csdn.net/m0_37860933/article/details/82220642