面向对象分析与设计—基本概念部分

此次总结,我将面向对象分析与设计技术总结概括为三部分

第一部分:面向对象基本概念

第二部分:面向对象分析部分

第三部分:面向对象设计部分

第一部分 面向对象基本部分

1.1 软件开发过程概述

1.2 面向对象技术

  面向对象(Object-oriented)技术是一种新型程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象、类、封装、继承、聚合、关联、消息、多态等基本概念来构造系统的软件开发方法。它充分体现了分解、抽象、模块化、信息隐蔽等思想,可以有效地提高软件生产率、缩短软件开发时间、提高软件质量,是控制软件复杂性的有效途径。

(1)传统结构化方法与面向对象方法比较?

  传统的结构化方法着眼于一个信息系统需要什么样的方法和处理过程。以过程抽象来对待系统的需求,其主要思想就是对问题进行功能分解,如果分解后得到的功能过大,那么再对这些功能进行分解,直到最后分解得到的功能能比较方便地处理和理解为止。它从算法的角度进行建模,所有的软件都用过程或者函数作为其主要构造块,所以,具有模型脆弱、难以适应需求的变动、维护较困难等特点。

  与传统的结构化方法相比,面向对象方法在描述和理解问题域时采用截然不同的方法。其基本思想是,对问题域进行自然分割,以更接近人类思维方式建立问题域模型,从而使设计出的软件尽可能直观地描述现实世界,具有更好的可维护性,能适应用户需求的变化。

面向对象技术优点:

  首先,用面向对象技术开发的系统比较稳定,较小的需求变化不会导致大的系统结构的改变。

  其次,用面向对象技术开发的系统易于理解。结构化方法和面向对象方法对现实世界采用了不同的映射方法。在结构化方法中,现实世界被映射为功能的集合;在面向对象方法中,现实世界中的实体及其相互关系被映射为对象及对象间的关系,实体之间的相互作用被映射为对象间的消息发送,以及其他类似的各种映射关系。

  第三,采用面向对象技术开发的系统具有更好的适应性,能更好地适应用户需求的变化,有助于改造大型软件系统。

  第四,用面向对象技术开发的系统具有更高的可靠性,有助于软件的维护与复用。

  第五,面向对象技术有助于提高软件的质量和生产率。

(2)面向对象的基本原则

  抽象、封装、委托、分类、继承

1.3 面向对象基本概念

  对象:对象(object)是系统中用来描述客观事物的一个实体,它是构造系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组方法组成。属性是用来描述对象静态特征的一个数据项,操作是用来描述对象动态特征的一个动作序列。对象之间通过消息通信。

  类:类(class)是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供一个统一的抽象描述。类是静态的,类的语义和类之间的关系在程序执行前就已经定义好了,而对象是动态的,对象是在程序执行时被创建和删除的。

  封装:封装就是把对象的属性和方法结合成一个独立的系统单位,并尽可能地隐藏对象的内部细节。封装使一个对象形成两个部分:接口部分和实现部分,对于用户来说,接口部分是可见的,而实现部分是不可见的。封装提供了两种保护,首先封装可以保护对象,防止用户直接存取对象的内部细节;其次,封装也保护了客户端,防止对象实现部分的变化可能产生的副作用,即实现部分的改变不会影响到客户端的改变。

  继承:特殊类(子类)拥有其一般类(父类)的生命属性与操作,称作特殊类对一般类的继承。在子类中可以增加或重新定义所继承的属性或方法,如果是重新定义,则称为覆盖(override)。与覆盖很类似的一个概念是重新(overload),重载指的是一个类中有多个同名的方法,但这些方法在操作数或/和操作数的类型上有区别。

  多态:多态指的是一个实体在不同上下文条件下具有不同意义或用法的能力。对象的多态通常是指一般类中定义的操作和属性被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。注意:多态属于运行时的问题,而重载是编译时的问题。

  example:Graph类中有一个draw方法,Circle和Rectangle类中继承了draw方法,可以声明一个Graph类型对象的变量,但在运行时,可以把Circle类型或Rectangle类型的对象赋值给变量,即变量所引用的对象在运行在运行时会有不同的形态。如果调用draw方法,则根据运行时该变量所引用Circle还是Rectangle,来决定调用Circle中的draw方法还是Rectangle中的draw方法。

  消息:消息是向对象发出的服务请求,它包含了提供服务的对象标识、服务标识、输入信息和回答信息等。注意:消息不等同于函数调用。消息可以包括同步消息和异步消息,如果消息是异步的,则一个对象发送消息后,就继续自己的活动,不等待消息接收者返回控制,而函数调用往往是同步的,消息的发送者要等待接收者返回。

原文地址:https://www.cnblogs.com/wzw0625/p/11775223.html

时间: 2024-10-24 20:33:59

面向对象分析与设计—基本概念部分的相关文章

面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)(概念版)

阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我们真的看见OOAD的希望 5.在四色原型上运用彩色建模增强视觉冲击力 6.通过四色原型模式建模出领域无关模型 7.结束语:建模时你可以不考虑具体实现,但是建模者要懂技术实现 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好几年前的事情了,当时是胸有成竹

面向对象分析与设计

面向对象基本概念 对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这些属性进行操作的一组服务的封装体.客观世界是由对象和对象之间的联系组成的.主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务). 类:把众多的事物归纳.划分成一些类是人类在认识

面向对象分析与设计的一些心得

面向对象分析与设计的一些心得 分析.设计与实现 我所理解的真正的对象就是现实生活中客观存在或不存在的真正的对象.这个对象有一个明显的特征就是它具有非常多的状态特征和行为特 征.比如一个人是一个对象,他在一生中会经历无数个交互场景,在这个过程中,每个人的行为特征会不断增多,大部分行为是通过后天学习得到的,只有少数行为 是先天就具有的:另一方面,对于状态特征也是在时不时的变化,比如你的身高.体重,等等.最后,人因为会参与到不同的交互场景,会导致和他关联的各种关联 信息也会不断增多,比如你去上大学,老

面向对象分析与设计:四个基础原则

大家都知道遵循设计原则是开发高质量软件的重要基础,但实际运用时并不容易.Booch在<<面向对象分析与设计>>中提出了四个基础原则: 抽象   核心思想是不变性的概念.去除不关心的属性,而强化重要的属性,帮助人们思考要做什么. 封装  核心是分离关注和信息隐藏,让程序借助最少的工作进行可靠的修改. 模块化  核心思想是分而治之,各个模块应当高内聚.低耦合. 层次结构  核心是对抽象的分级和排序,可以简化对系统的理解.

深入浅出面向对象分析与设计笔记

1.在搜索匹配时注意大小写问题. 2.别为了解决旧问题而产生新问题. 3.使用enum的好处:使用enum的方法或类会受到它的保护,不会有未定义的enum的值.因此不会有打错字或拼错字,对任何具有标准范围或合法值的东西都能避免取得坏数据. 4.任何时候看到重复程序代码,就找个地方进行封装. 5.委托: 6.Java匿名内部类是一种特殊的继承方式,既可以扩展类,也可以实现接口,但是不能两者兼备,而且若实现接口也只能实现一个接口.由于其没有名字,因此不会有命名构造器,但可以实例初始化.如果定义一个匿

面向对象分析与设计之OOA学习

1.从需求到业务用例图 OOA&D的第一步,就是了解用户需求,并将其转换为业务用例图.我们的 CMS系统需求非常简单,大致可做如下描述:这个系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布新闻.任何人可以浏览新闻,浏览者可以注 册成为系统会员,注册后可对新闻进行评论.管理员在后台可以对新闻.评论.注册会员进行管理,如修改.删除等.通过以上需求描述,我们画出如下的业务用例 图: 业务用例图 这里要注意三点: 1.业务用例是仅从系统业务角度关注的用例,而不是具体系统的用例.它描述的是“该

《面向对象分析与设计》阅读笔记3

作者对面向对象分析和设计的经典论述: OOP:面向对象编程是一种实现方法,程序被组织成对象的协作集合,每一个对象代表某个类的实例,对象的类是通过继承关系联合在一起的类层次中的所以成员. OOD:面向对象设计是一种设计方法,它包含面向对象的分解过程,以及一种表示方法,用来描写设计中的系统的逻辑模型与物理模型,以及静态模型与动态模型. OOA:面向对象分析是一种分析方法,它以可在问题域的词汇表中找到的类和对象的观点来审视需求.

UML面向对象分析与设计试题2008-B卷

UML面向对象分析与设计试题2008-B卷 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 提交APPStore流程http://www.360doc.com/content/15/0203/15/19663521_445974056.shtml

面向对象分析与设计阅读笔记二

今天我阅读了面向对象分析与设计的第二章对象模型,从计算机一开始的第一代语言到面向对象编程的演化,经历了很长的演变,同时面向对象的编程也是历史性的演变.那么什么是面向对象的编程呢?面向对象的编程其实是一种实现的方法,在这种方法中,程序组成许多相互协作的对象,每个对象代表一个实例,而类则属于一个通过继承关系形成的层次结构.以前我的认为是:面向对象的编程不就是写一个类,然后用类去创建一个对象,用对象来实现其中的某些功能.现在看来这样的想法有些片面. 每一种编程风格都是基于它自己的概念框架.对于所有面向