责任链设计模式是否适合在硬件组件上运行Python解决方案

2024-05-19 07:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用Python编写的OOP解决方案,它主要集中在管理不同类型的硬件组件,如相机、伺服、接近传感器等

我有一帮运营经理。操作管理器基本上是一个类,其中定义了多个公共方法。我定义的规则如下:

1. Different operation managers can call each other’s public methods
2. Multiple operation managers are involved into one specific use-case
3. Operation manager's method execution depends on the result of the previous operation manager (if previous was successfully executed - execute this one, otherwise terminate)
4. Each operation manager must be able to report its failure to a common channel (logging)
5. There’s no need for a transactional behavior (rollback)

我的目标是

  • 轻松集成新的运营经理
  • 能够测试特定用例(OperationManager操作集)
  • 引入一个抽象层次,并使不同的操作管理器彼此解耦。你知道吗

我一直在看CoR,但仍然不确定它是否是我的最佳选择。你知道吗


Tags: theto类型管理器硬件定义manager组件
1条回答
网友
1楼 · 发布于 2024-05-19 07:23:28

没有。责任链对于一步一步地处理某件事情很有用,其中每个组件可能或可能不参与,或者可能或可能不终止整个执行。它描述了“步骤”的线性排序,通常以“链接”的链表(负责处理特定数据的特定对象)来实现。HTTP拦截器是典型的例子。对于非线性排序,使用了一个图,它与GoF的责任链关系不大:“小”,因为链表本质上是一种图。你知道吗

你所描述的太宽泛了,无法具体说明某个模式。根据代码复杂度、外部依赖性、用例数量和许多其他因素,使用很少的模式就可以解决这个问题。你知道吗

既然以use case原语为中心,为什么不在代码中严格定义它呢?一个UseCase接受它需要的任何东西,并以某种统一的形式输出一个结果——您必须引入通用的结果/失败报告对象,这个对象足够通用,可以被所有用例重用。你知道吗

我所描述的不是一种模式,至少不是一种GoF模式,尽管这绝对是专门化您的需求和期望的一个很好的起点。你知道吗

相关问题 更多 >

    热门问题