面向对象分析、面向对象设计与面向对象编程的意义和联系?
面向对象分析、面向对象设计与面向对象编程的意义和联系?
呵呵,这和"面向对象"无关,应该是分析、设计与编程的关系。按照传统的软件开发过程,分为分析、设计、编码、测试阶段,所以,他们的关系,在传统过程中,是一个先后顺序的关系,呵呵。
面向对象七大设计原则
单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离。
面向对象设计原则有7个,这7大设计原则包括开闭原则、里氏替换原则、依赖倒转原则、单一职责原则、接口隔离原则、组合/聚合复用原则、迪米特法则。
DIP依赖倒置原则抽象不依赖于细节,细节应该依赖抽象。(面向抽象编程,C#为面向接口编程)。ISP接口隔离原则接口属于用户类。
特征见下面:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的 *** 。
抽象不依赖于细节,细节应该依赖抽象。(面向抽象编程,C#为面向接口编程)。ISP接口隔离原则接口属于用户类。(接口面用用户类,不用想着和自身层次、 *** 相关)REP重用发布等价原则重用的粒度就是发布的粒度。
单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离。
在运用面向对象的思想进行软件设计时,需要遵循的原则一共有7个,他们是:单一职责原则(SingleResponsibilityPrinciple)每一个类应该专注于做一件事情。
依赖关系不要存在环。ADP稳定依赖原则朝着稳定的方向进行依赖。SAP稳定抽象原则包的抽象程度应该和稳定程序一致。
单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离。
面向对象的五大原则:模块化面向对象开发 *** 很自然地支持了把系统分解成模块的设计原则:对象就是模块。它是把数据结构和操作这些数据的 *** 紧密地结合在一起所构成的模块。
下面分享相关内容的知识扩展:
什么是面向对象法?与结构化 *** 比较有何优点?
结构化分析设计 *** 遵循面向过程的问题求解 *** ,其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。结构化的程序设计的核心就是算法加数据结构。 面向过程 *** 大多基于瀑布模型,需要对整体结构做以通盘的掌握。当用户的需求发生变化时,整个软件功能就随之发生变化,从而导致整个软件结构的不稳定。
同时,过程分析和数据分析始终是两个相对独立的过程,两者之间存在着明显的边界,这个问题始终在结构化 *** 中终没解决。 对象是面向对象的程序设计的核心,它由描述状态的属性(变量)和用来实现对象行为的 *** (函数)组成,完成了从数据模型到处理模型的结合与统一。面向对象 *** 论的出发点和基本原则是尽可能的模拟人类习惯的思维方式,使开发软件的 *** 与过程尽可能的接近人类认识世界解决问题的 *** 与过程。
结构化的程序设计是一种自上而下的设计 *** ,设计者用一个主函数概括出整个应用程序需要做的事情主线,并由对一系列子函数的调用组成。以函数为中心。 结构化 *** 是将系统看成是过程的 *** ,过程与数据实体之间交互,过程接受输入并产生输出; 面向对象 *** 则不再把程序看成工作在数据上的一系列过程或函数的 *** ,而是把程序看作是相互协作而又彼此独立的对象的 *** 。
从概念方面看,结构化软件是功能的 *** ;面向对象软件是事物对象的 *** 。 从构成方面看,结构化软件是过程和数据的 *** ,以过程为中心;面向对象软件是数据和相应操作的封装,以对象为中心。 从运行控制方面看,结构化软件采用顺序处理方式,由过程驱动控制;面向对象软件采用交互式,并行处理方式,由消息驱动控制。
结构化程序设计特点:
优点: 与非结构化程序相比,结构化程序在调试、可读性和可维护性等方面都有很大的改进。
缺点:代码重用性不高:以过程为中心设计新系统,除了一些标准函数,大部分代码都必须重新编写。
由于软、硬件技术的不断发展和用户需求的变化,按照功能划分设计的系统模块容易发生变化,使得开发出来的模块的可维护性欠佳。
面向过程模式将数据与过程分离,若对某一数据结构做了修改,所有处理数据的过程都必须重新修订,这样就增加了很多的编程工作量。
面向对象的优点:
而面向对象围绕现实世界的概念来组织模块,采用对象描述问题空间的实体,用程序代码模拟现实世界中的对象,使程序设计过程更自然、更直观。
面向过程是以功能为中心来描述系统,而面向对象是以数据为中心来描述系统。相对于功能而言,数据具有更强的稳定性。
面向对象模拟了对象之间的通信。就象人们之间互通信息一样,对象之间也可以通过消息进行通信。这样,我们不必知道一个对象是怎样实现其行为的,只需通过对象提供的接口进行通信并使用对象所具有的行为功能。而面向过程则通过函数参数和全局变量达到各过程模块联系的目的。
面向对象把一个复杂的问题分解成多个能够完成独立功能的对象(类),然后把这些对象组合起来去完成这个复杂的问题。采用面向对象模式就象在流水线上工作,我们最终只需将多个零部件(已设计好的对象)按照一定关系组合成一个完整的系统。这样使得软件开发更有效率。
面向对象设计ood模型的主要部件中,通常不包括
面向对象设计OOD模型的主要部件中,通常不包括通信部件面向对象设计(Object-Oriented Design,OOD) *** 是OO *** 中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。
模型
通过主观意识借助实体或者虚拟表现,构成客观阐述形态结构的一种表达目的的物件(物件并不等于物体,不局限于实体与虚拟、不限于平面与立体)。模型≠商品。任何物件定义为商品之前的研发过程中形态均为模型,当定义型号、规格并匹配相应价格的时候,模型将会以商品形式呈现出来。从广义上讲:如果一件事物能随着另一件事物的改变而改变,那么此事物就是另一件事物的模型。模型的作用就是表达不同概念的性质,一个概念可以使很多模型发生不同程度的改变,但只要很少模型就能表达出一个概念的性质,所以一个概念可以通过参考不同的模型从而改变性质的表达形式。当模型与事物发生联系时会产生一个具有性质的框架,此性质决定模型怎样随事物变化
部件
部件(assembly unit)是系统的一部分,由若干构件装配在一起的、所组成。以下关于面向对象设计的说法正确的有( )。
以下关于面向对象设计的说法正确的有( )。
A、对象具有很强的表达能力和描述功能
B、对象是人们要进行研究的任何事务
C、对象是封装的最基本单位
D、类封装比对象封装更具体、更细致
A B C解析:
本题考查计算机操作。
从程序设计 *** 的角度看,面向对象是一种新的程序设计范型,其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计。是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发 *** 。
A、B项正确,面向对象从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象)。
C项正确,封装是指将一个计算机系统中的数据以及与这个数据相关的一切操作语言(即描述每一个对象的属性以及其行为的程序代码)组装到一起,一并封装在一个有机的实体中,把它们封装在一个“模块”中,也就是一个类中,为软件结构的相关部件所具有的模块性提供良好的基础。在面向对象技术的相关原理以及程序语言中,封装的最基本单位是对象。
D项错误,面向对象的思想中提出了两个概念,即类与对象。其中,类是对某一类事物的抽象描述,而对象用于表示现实中该事物的个体。对象要更具体,更细致。
故正确答案为ABC。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。