我认为过程型、面向对象型和事件驱动型是软件开发.And中的主要范式,如何在它们之间建立关系?
过程型、面向对象型和事件驱动型之间的关系是什么?
很难澄清它们之间的关系。
发布于 2022-11-14 05:18:08
过程驱动和事件驱动描述了应用程序或决策逻辑的一般工作流,其中面向对象更多地描述了决策逻辑的结构。
在过程编程中,系统的状态通常在各步骤之间直接传递,因此它不需要存在于执行逻辑之外的上下文中,并且不需要正式地管理该状态的形状或结构。
- Prodedural logic complements _Functional_ programming architectures but can be used in many contexts.
- Procedural logic suits scenarios where interaction with external systems is instantaneous or not required or if it is OK for your logic to halt processing until the external system responds.
- Procedural logic may raise events for external _event driven_ logic to respond to, that doesn't make it _event driven_.从测试的角度来看,正确地测试纯过程编程应用程序需要完成整个应用程序。您还可以通过直接评估每个步骤的状态或结果来测试流程中的每个步骤,但是在纯PP中,状态并不是在一个我们可以轻松访问逻辑之外的上下文中维护的,所以测试的唯一方法是运行每个流程以完成检查结果。
- This means that the external _state_ is generally less of a concern for testing PP logic.
- End-To-End testing is greatly simplified because there are less permutations of outcomes to consider.这意味着在事件驱动逻辑中,在执行决策逻辑时检查系统的状态更为重要。可以想象,这些步骤可以按任何顺序执行,因此在任何时候,状态都需要在大多数逻辑之外的上下文中进行管理,这就是OO概念开始变得非常有用的地方。
- Most Graphical User Interfaces will implement forms of _Event Driven_ programming. Think of a simple _button click_ event, the user controls the timing of the execution, or if the button is clicked at all.从测试的角度来看,在测试过程之前,系统的当前状态对于评估或控制是非常重要的。根据测试过程中可能引起复杂问题的事件类型,您可能需要模拟、模拟或拦截其他系统或事件。
面向
因此,OO最终产生了许多额外的锅炉板逻辑,在真正进入行为或反动逻辑之前,需要在状态和环境的设计上做更多的努力。
OO对与事件驱动的编程非常好,对象使表示环境更容易,并对环境进行了细微的更改。
从测试的角度来看,OO使复制状态或环境成为可能,而无需访问实际的操作环境。因为逻辑是在每个对象中定义的一组更细粒度的行为集,所以我们可以很容易地与系统的其他部分隔离来测试这些行为。
然而,同样的恩惠也可能成为一种负担,但需要更加小心地确保状态的定义足够准确,以获得有意义的测试结果。为了完成端到端的测试,可以有大量的移动部件,因为与PP相比,事件的时间限制更少(如果有的话),就有更多的潜在结果需要定义和自动化。因此,在面向对象程序设计中,更重要的是在粒度级进行适当的测试,以验证离散逻辑块以获得可信度,然后在更大的级联规则集中进行测试。
https://stackoverflow.com/questions/74426618
复制相似问题