面向功能设计和面向对象设计的区别
1. 面向功能的设计:
面向功能的设计是关注程序功能的结果。这是基于逐步细化的。逐步细化基于迭代程序分解。逐步细化是一种自上而下的策略,其中程序被细化为增加细节级别的层次结构。
我们从程序功能的高级描述开始。然后,在每一步中,我们提取高级描述的一部分并对其进行改进。细化其实是一个精雕细琢的过程。该过程应该从高度概念化的模型进行到较低级别的细节。每个模块的细化完成,直到我们达到我们的编程语言的语句级别。
2. 面向对象设计:
面向对象的设计不是将注意力集中在程序执行的功能上,而是将注意力集中在程序要操作的数据上。因此,它与面向功能的设计正交。面向对象的设计始于对现实世界“事物”的检查。这些东西在属性和行为方面都是单独的特征。
对象是可以很容易更改的独立实体,因为所有状态和表示信息都保存在对象本身内。对象可以是分布式的,可以按顺序或并行执行。面向对象技术包含以下三个关键词——
对象—
软件包的设计和开发与真实世界的实体相对应,这些实体包含所有数据和服务,以充当其关联实体消息。
通信-
建立通信机制,提供对象协同工作的方法。
方法-
方法是对象为满足问题域的功能要求而执行的服务。对象通过消息请求其他对象的服务。
面向功能设计和面向对象设计的区别:
比较因素 | 面向功能的设计 | 面向对象的设计 |
---|---|---|
抽象 | 提供给用户的基本抽象是现实世界的功能。 | 基本抽象不是现实世界的功能,而是代表现实世界实体的数据抽象。 |
功能 | 功能被组合在一起,从而获得更高级别的功能。 | 由于类与它们的方法相关联,因此函数根据它们操作的数据组合在一起。 |
使用 | 结构化分析和结构化设计(即数据流程图) | 执行使用 UML 执行 |
状态信息 | 在这种方法中,状态信息通常在集中式共享内存中表示。 | 在这种方法中,不表示状态信息,不在集中式存储器中表示,而是在系统的对象之间实现或分布。 |
方法 | 这是一种自上而下的方法。 | 这是一种自下而上的方法。 |
开始基础 | 首先考虑用例图和场景。 | 从识别对象和类开始。 |
分解 | 在面向功能的设计中,在功能/过程级别进行分解。 | 在班级层面进行分解。 |
使用 | 这种方法主要用于计算敏感的应用程序。 | 这种方法主要用于模拟业务或业务案例的演进系统。 |