没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86306543/bg1.jpg)
向过程的程序设计的核是过程(流线式思维),过程即解决问题的步骤,向过程的设计就好
精设计好条流线,考虑周全么时候处么东。
优点:极的降低程序的复杂度
缺点:套流线或者流程就是来解决个问题,产汽的流线法产汽,即是能,也
得是改,改个组件,牵发动全身。
应场景: 旦完成基本很少改变的场景,著名的有Linux內核,git,以及Apache HTTP Server
等。
向对象的程序设计的核是对象,Python中 切皆对象,上帝思维,在上帝眼中这世间的切都是
对象,没有的东也能创造出来。
优点: 解决程序的扩展性。对某个对象单独修改,会刻反映到整个体系中,如对游戏中个
物参数的特征和技能修改都很容。
缺点: 可控性差,法向向过程的程序设计流线式的可以很精准的预测问题的处流程与结果,
向对象的程序旦开始就由对象之间的交互解决问题,即是上帝也法预测最终结果。于是我们
经常看到个游戏某参数的修改极有可能导致某个游戏的出现数据异常的技能,如砍
死3个,这样就会很影响游戏的平衡。
应场景: 需求经常变化的软件,般需求的变化都集中在户层,互联应,企业内部软件,游
戏等都是向对象的程序设计显身的好地。
在这把向对象法的发展分为三个阶段:雏形阶段、完善阶段和繁荣阶段。
雏形阶段
20世纪60代挪威计算中开发的Simula 67,先引类的概念和继承机制,它是向对象语的
先驱。该语的诞是向对象发展史上的第个程。随后20世纪70代的CLU、并发Pascal、
Ada和Modula 2等语对抽象数据类型论的发展起到重要作,它们持数据与操作的封装。犹
他学的博Alan Kay设计出个实验性的语Flex,该语从Simula 67中借鉴许多概念,如
向对象编程
从向过程到向对象
向对象发展历程
![](https://csdnimg.cn/release/download_crawler_static/86306543/bg2.jpg)
类、对象和继承等。1972Palo Alno研究中(PARC)发布Smalltalk 72,其中正式使“向
对象”这个术语。Smalltalk的问世标志着向对象程序设计法的正式形成,但是这个时期的Smalltalk
语还够完善。
完善阶段
PARC先后发布Smalltalk 72、76和78等版本,直1981推出该语完善的版本Smalltalk 80。
Smalltalk 80的问世被认为是向对象语发展史上最重要的程。迄今绝部分向对象的基本概
念及其持机制在Smalltalk 80中都已具备。它是第个完善的、能够实际应的向对象语。但是
随后的Smalltalk的应尚够泛,其原因是:
追求纯OO的宗旨使得许多软件开发员感到。
种新的软件开发法被泛地接受需要定的时间。
针对该语的商品化软件开发作到1987才开始进。
繁荣阶段
从20世纪80代中期到90代,是向对象语向繁荣的阶段。其主要表现是批较实的向
对象编程语的涌现,如 C++、ObjectiveC、Object Pascal、CLOS(Common Lisp Object
System)、Eiffel和Actor等。这些向对象的编程语分为纯OO型语和混合型OO语。混合型语
是在传统的过程式语基础上增加OO语成分形成的,在实性具有的优势。此时的纯
OO型语也较重视实性。现在,在向对象编程,普遍采语、类库和可视化编程环境相
结合的式,如Visual C++、JBuilder和Delphi等。向对象法也从编程发展到设计、分析,进发
展到整个软件命周期。 到20世纪90代,向对象的分析与设计法已多达数种,这些法都各
有所。前,统建模语(Unified Modeling Language,UML)已经成为世界性的建模语,适
于多种开发法。把UML作为向对象的建模语,但在软件产业界获得普遍持,在学术界
影响也很。在向对象的过程指导,前还没有国际规范发布。当前较为流的于向对象
软件开发的过程指导有“统软件开发过程”(也有称为RUP)和国内的向对象软件开发过程指
导等。 当前,向对象法乎覆盖计算机软件领域的所有分。如,已经出现向对象的编
程语、向对象的分析、向对象的设计、向对象的测试、向对象的维护、向对象的图形
户界、向对象的数据库、向对象的数据结构、向对象的智能程序设计、向对象的软件开发
环境和向对象的体系结构等。此外,许多新领域都以向对象论为基础或作为主要技术,如向
对象的软件体系结构、领域程、智能代(Agent)、基于构件的软件程和向服务的软件开发
等。
向对象分析法指的是在个系统的开发过程中进系统业务调查以后,按照向对象的思想来分
析问题。OOA与结构化分析有较的区别。OOA所强调的是在系统调查资的基础上,针对OO法
所需要的素材进的归类花分析和整,是对管业务现状和法的分析。
OOA在定义属性的同时,要识别实连接。实连接是个示与另个实的映射关系。 OOA在定
义服务的同时要识别消息连接。当个对象需要向另个对象发送消息时,它们之间就存在消息连
Object-Oriented Analysis:向对象分析法
![](https://csdnimg.cn/release/download_crawler_static/86306543/bg3.jpg)
接。 OOA中的5个层次和5个活动继续贯穿在OOD(向对象设计)过程中。OOD模型由4各部分组
成。它们分别是设计问题域部分、设计机交互部分、设计任务管部分、和设计数据管部分。
(1)抽象: 从许多实物中舍弃个别的、本质的特征,抽取共同的、本质性的特征,就叫做抽象。抽象
是形成概念的必须段。 抽象原则有两个的意义: 第,尽管问题域中的事物是很复杂的,但是
分析员并需要解和描述它们的切,只需要分析其中与系统标有关的事物及其本质性特征。 第
,通过舍弃个体事物在细节上的差异,抽取其共同特性得到批事物的抽象概念。
抽象是向对象法中使最为泛的原则。抽象原则包括过程抽象和数据抽象两个。
过程抽象是指,任何个完成确定功能的操作序,其使者都可以把它看做个单的实体,尽管
实际上它可能是由系低级的操作完成的。
数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观
察。数据抽象是OOA的核原则。它强调把数据(属性)和操作(服务)结合为个可分的系统单
位(即对象),对象的外部只需要知道它做么,必知道它如何做。
(2)封装: 就是把对象的属性和服务结合为个可分的系统单位,并尽可能隐蔽对象的内部细节。
(3)继承: 特殊类的对象拥有的其般类的全部属性与服务,称作特殊类对般类的继承。
在OOA中运继承原则,就是在每个由般类和特殊类形成的半----特殊结构总,把般类的对象实
和所有特殊类的对象实都共同具有的属性和服务,次性的在般类中进显式的定义。在特殊
类中在重复的定义般类中已定义的东,但是在语义上,特殊类却动的、隐含地拥有它的般
类(以及所有上层的般类)中定义的全部属性和服务。继承原则的好处是:是系统模型较简练
也较清晰。
(4)分类: 就是把具有相同属性和服务的对象划分为类,类作为这些对象的抽象描述。分类原则实
际上是抽象原则运于对象描述时的种表现形式。
(5)聚合: 称组装,其原则是:把个复杂的事物看成若较简单的事物组装体,从简化对复杂
事物的描述。
(6)关联: 是类思考问题时经常运的思想法:通过个事物联想到另外的事物。能使发联想
的原因是事物之间确实存在着某些联系。
(7)消息通信: 这原则要求对象之间只能通过消息进通信,允许在对象之外直接地存取对象内
部的属性。通过消息进通信是由于封装原则引起的。在OOA中要求消息连接表示出对象之间的动
态联系。
(8)粒度控制: 般来讲,在对个复杂的问题域时,可能在同时刻既能纵观全局,能察
秋毫。因此需要控制的视野:考虑全局时,注意其的组成部分,暂时详查每部分的具体的
细节:考虑某部分的细节时则暂时撇开其余的部分。着就是粒度控制原则
OOA的主要原则
![](https://csdnimg.cn/release/download_crawler_static/86306543/bg4.jpg)
(9)为分析: 显示世界中事物的为是复杂的。由的事物所构成的问题域中各种为旺旺相互依
赖交织
1.对象模型:对模型进分析,把系统分解成互相协作的分析类,通过类图\对象图描述对象\对象
的属性\对象间的关系,是系统的静态模型 2,动态模型:描述系统的动态为,通过时序图/协作图/描
述对象的交互,以揭示对象间如何协作来完成每个具体的。单个对象的状态变化/动态为可以通
过状态图来表示、 3.功能模型(即模型à作为输)
1,确定对象和类。这所说的对象是对数据及其处式的抽象,它反映系统保存和处现实世界
总某些事物的信息能。。类是多个对象的共同属性和法集合的描述,它包括如何在个类中建
个新对象的描述。
2,确定结构(structure)。结构是指问题域的复杂性和连接关系。类成员结构反映泛华—特化关
系,整体-部分结构反映整体和局部之间的关系
3,确定主题(subject)。主题是指事物的总体概貌和总体分析模型
4,确定属性(attribute)。属性就是数据元素,可来描述对象或分类结构的实,可在图中给出,
并在对象的存储中指定。
5,确定法(method)。法是在收到消息后必须进的些处法:法要在图中定义,并在
对象的存储中指定。对于每个对象和结构来说,那些来增加、修改、删除和选择个法本身都是
隐含的(虽然它们是要在对象的存储中定义的,但并在图上给出),有些则是显示的。
向对象设计(Object-oriented Design,OOD)法是oo法中个中间过渡环节。其主要作是对
OOA分析的结构作进步的规范化整,以能够被oop直接接受。
OOD的 标是管程序内部各部分的相互依赖。为达到这个标,OOD要求将程序分成块,每个
块的规模应该到可以管的程度,然后分别将各个块隐藏在借(interface)的后,让它们只通
过接相互交流。如说,如果OOD的法类设计个服务-客户端(client-server)应,那么
服务和客户端之间应该有直接地依赖,是应该让服务的接和客户端的接相互依赖。
OOD是种解决软件问题的设计范式(paradigm),种抽象的范式。使OOD这种设计范式,我们
可以对象(object)来表现问题领域(problem domain)的实体,每个对象都有相应的状态和
为。我们刚才说到:OOD是种抽象的范式。抽象可以分成很多层次,从常概括的到常特殊的都
有,对象可能处于任何个抽象层次上。另外,彼此同但相互关联的对象可以共同构成抽象:
只要这些对象之间有相似性,就可以把它们当成同类的对象类处。
向对象分析产三种模型
OOA法的具体步骤
Object-oriented Design:向对象设计
![](https://csdnimg.cn/release/download_crawler_static/86306543/bg5.jpg)
向对象设计(Object-Oriented Design,OOD)法是向对象程序设计法中个环节。其主要作
是对分析模型进整,成设计模型提供给OOP作为开发依据。OOD包括:架构设计、设
计、系统设计、类设计等。架构设计的侧重点在于系统的体系框架的合性,保证系统架构在系统
的各个功能性需求中保持种平衡;系统设计般是采纵向切割,关注的是系统的功能划分;
类设计是根据通过组对象、序图展示系统的逻辑实现。
有很多都认为:OOD是对结构化设计(Structured Design,SD)的扩展,其实这是对的。OOD
的软件设计观念和SD完全同。SD注重的是数据结构和处数据结构的过程。在OOD中,过程和
数据结构都被对象隐藏起来,两者乎是互相关的。过,追根溯源,OOD和SD有着常深的渊
源。
1967前后,OOD和SD 的概念乎同时诞,它们分别以同的式来表现数据结构和算法。当
时,围绕着这两个概念,很多科学家写的论。其中,由Dijkstra和 Hoare两所写的些论
讲到“恰当的程序控制结构”这个话题,声称goto语是有害的,应该顺序、循环、分这三种控制
结构来构成整个程序流程。这些概念发展构成结构化程序设计法;由Ole-Johan Dahl所写的另
些论则主要讨论编程语中的单位划分,其中的种程序单位就是类,它已经拥有向对象程
序设计的主要特征。
这两种概念刻就分道扬镳。在结构化这边的历史家都很熟悉:NATO会议采纳Dijkstra的思
想,整个软件产业都同意goto语的确是有害的,结构化法、瀑布模型从70代开始其道。同
时,数的科学家和软件程师也帮助结构化法断发展完善,其中有很多今天以使我们振聋发
聩的名字,如Constantine、Yourdon、DeMarco和Dijkstra。有很段时间,整个世界都相信:结
构化法就是拯救软件业的 “银弹”。当然,时间最后证明切。
此时,向对象则在研究和教育领域缓慢发展。结构化程序设计乎可以应于任何编程语之
上,向对象程序设计则需要语的持[1],这也妨碍向对象技术的发展。实际上,在60代
后期,持向对象特性的语只有Simula-67这种。到70代,施乐帕阿尔托研究中
(PARC)的 Alan Key等发明另种基于向对象法的语,那就是名鼎鼎的Smalltalk。
但是,直到80代中期,Smalltalk和另外种向对象语仍然只停在实验室。 到90代,
OOD突然就靡整个软件业,这绝对是软件开发史上的次命。过,登才能望远,新事物
总是站在旧事物的基础之上的。70代和80代的设计法揭示出许多有价值的概念,谁都能也
敢忽视它们,OOD也样。
五个基本原则(SOLID):
OOD介绍 (what and why)
OOD设计原则(how)
S-单职责原则
个类有且仅有个职责,只有个引起它变化的原因。
1
剩余52页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![avatar](https://profile-avatar.csdnimg.cn/66d0872a2ad54925a620a7a39a74c2ef_weixin_35830723.jpg!1)
简甜XIU09161027
- 粉丝: 26
- 资源: 310
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- element-icons
- vs图书管理系统框架 winform + c# + sqlserver + 界面美化
- 基于Springboot的学生成绩管理系统-Java项目-毕业设计
- 基于vue+springboot在线考试系统 框架 idea + vscode + html + css + vue + jav
- shell脚本监控docker容器和supervisor 运行情况
- 图书管理系统框架 winform + c# + sqlserver + 界面美化
- 基于react16.7.0 + antd3.11.6 + axios + 0.18.0的基础上搭建的路由框架.zip
- 3333333333333333333
- STM32软件I2C,已验证
- 使用python的turtle画玫瑰实例代码.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0