系统设计与面向对象设计的区别

时间:2017-11-19 09:16:39

标签: oop architecture object-oriented-analysis system-design object-object-mapping

有人可以解释系统设计和面向对象设计之间的区别吗?

面向对象的设计涉及对象建模,并使用面向对象的概念,如抽象,封装,分解和泛化。这两个设计都涉及建筑设计和概念设计。

是其他的设计范式子集吗?

4 个答案:

答案 0 :(得分:1)

系统设计是整个软件/应用程序的整体设计,包括分析,建模,体系结构,组件,基础结构等。而面向对象的设计是定义的规则/概念集,用于实施软件中的功能。

打个比喻,一场足球比赛。

因此,系统设计涉及足球场,球杆,地面上的草丛,地面的位置,地面的长度/宽度,在地面上放置线标记,记分板,定义比赛球队,玩家玩等

现在,进行面向对象的设计:如何玩游戏由需要遵循的一组规则定义。因此,玩家需要在定义的规则内玩游戏。因此,玩家对这些规则的了解越多,他们就可以更好地玩游戏而不会打鸟。类似地,面向对象概念的规则是继承,组成,抽象,封装。因此,我们对这些概念了解得越多,我们就可以做出更好的设计。

@Prashant,希望它能解释一下

答案 1 :(得分:1)

假设您想设计一个在线购物网络应用程序(例如 amazon.com)。因此,在制作该 Web 应用程序之前,您必须考虑:

  1. 负载平衡以处理用户请求,
  2. 数据库是否使用SQL或NOSQL,
  3. 是否像Redis一样使用缓存,
  4. 为不同的任务制作微服务(如通知服务、订单处理服务等)
  5. 监控您的网络应用程序(如内存、CPU 等),
  6. 日志记录(例如在相扑逻辑中)。
  7. CI/CD

因此,所有这些都属于系统设计范畴,因为它们是任何系统运行所必需的。

现在一旦你完成所有这些事情并开始实现(编写代码)系统的任何部分,那么你就可以按照面向对象的设计来制作类、接口等。

例如,您开始实现通知微服务(比如用 Java),所以现在您必须设计类、接口等,为此,您可以使用面向对象的设计原则,例如 SOLID。

所以我们可以说面向对象设计是系统设计的一部分,当我们开始为系统的任何部分进行实际实现时,它就会出现。

答案 2 :(得分:0)

系统理论中的系统可以是一切。 (系统科学的方面,George Klir,1991)系统在TREE的TOP,其他类别的超类。 总体而言,系统开发包括 2个主要阶段

1-系统分析:包括计划,要求,分析等。这些项目与系统理论中的特定方法有关。

2-系统设计:包括设计,实施,测试,部署,维护等。

正如我所说,系统可以是一切。例如:
机械系统,心理系统,社会系统,飞机系统等。每个类别可能都有基于上述两个主要阶段的详细和具体的分析和设计步骤。

在计算机世界中,软件系统是系统类别之一。 每种软件分析和设计方法也基于上述两个主要阶段。

此外,在软件系统中,我们有一些分析和设计的范例,如: 结构/过程为中心
以数据为中心的 面向对象的 面向服务的 等等。

他们每个人都拥有自己的分析和设计步骤。这些步骤也基于两个主要阶段。但在细节上,他们有一些差异。

总而言之,系统分析和设计是所有其他类型系统的重要图景。学习系统分析和设计有助于理解所有其他系统分析和设计,并特别有助于比较和评估它们。

答案 3 :(得分:0)

对象是系统的一部分。您可以认为面向对象设计是系统设计的一部分。您可以设计高级(带概述)或低级(带细节)的系统。它将突出显示

  1. 基础设施
  2. 数据流管理
  3. 服务
  4. 缓存管理
  5. 请求/响应管理等

进行面向对象的设计时,您可以认为必须使用一些对象并在它们之间建立关系。但是在创建对象之前,您需要设计一些类。所以实际上OOD(面向对象设计)是

  1. 设计类图(可选)
  2. 上课
  3. 建立阶级之间的关系
  4. 使用用于创建对象的类
  5. 实现目的(基本功能和逻辑)等