责任链设计模式是否适合在硬件组件上运行的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)

我在这里的目标是能够

  • 轻松集成新的运营经理
  • 能够测试特定用例(操作管理器操作集)
  • 进行抽象化处理,并使不同的运营经理相互分离。

我一直在研究CoR,但仍不确定是否对我来说是最佳选择。

塞雷娅·波哥鲁波夫

不。责任链对于某些事物的逐步处理很有用,其中每个组件可能涉及可能不涉及,或者可能会也可能不会终止整个执行。它描述了“步骤”的线性排序,通常根据“链接”的链接列表来实现-负责处理特定数据的特定对象。HTTP拦截器是经典示例。对于非线性排序,使用了一个图,它与GoF的责任链无关:“小”,因为链表本质上是一种图。

您所描述的内容太宽泛,无法指定某种模式。可以使用少量模式来解决它,这取决于代码的复杂性,外部依赖关系,用例的数量和许多其他因素。

由于您以use case基本体为中心,为什么不在代码中严格定义它呢?一个aUseCase接受任何需要,并以某种统一的形式吐出一个结果-您必须引入通用的结果/失败报告对象,该对象必须足够通用才能被所有用例重用。

我所描述的不是模式,至少不是GoF模式,尽管绝对是专门化您的需求和期望的良好起点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

此解决方案的不同设计模式

这种继承模式是否适合在其上构建 python 包?

获取用于批处理模式下用户输入的Linux解决方案以在Windows上运行

是否有任何好的设计模式或解决方案来处理状态之间具有依赖性的过渡行为?

docker 在 Linux 机器上运行时是否使用虚拟化解决方案?

对于Testcafe无法在启用SIP的MacOS映像上运行的事实,是否有解决方案?

从Windows在Linux机器上运行软件:GUI解决方案

在责任链模式中使用共享组件的最佳方法

在多台机器上同步音频输出?VLC?硬件解决方案?

设计休眠实体的解决方案

JMS(或任何消息传递解决方案)是否适合关注者/关注模型

OOP设计模式-隐式调用超级方法或其他解决方案

为什么sympy无法在Python解决方案上收敛?

是否有使用React js进行此设计的解决方案或软件包?

Oracle数据库同步硬件解决方案?

使用基于USB的硬件解决方案进行盗版保护

使用在localhost Selenium上运行的相同解决方案在项目上运行测试

使用协程在python中实现责任链模式

c ++ 11是否提供与python maketrans / translate中实现的解决方案类似的解决方案?

“系统正在以低图形模式运行”错误。解决方案行不通,

无法在本地运行Kentico解决方案

Optaplanner仅生产单链解决方案

这里的异常重复模板模式(CRTP)是否是正确的解决方案?

使用CQRS模式的C#解决方案中是否存在可靠的内存服务总线?

此解决方案是否使 eval 安全?

是否有for循环或purrr解决方案?

在发布模式下,“ LinkAssemblies”任务在构建解决方案上意外失败

有没有不使用异常就中断程序执行的设计模式或任何典型的解决方案?

C#实体框架/ ASP.NET REST和模型设计模式或解决方案体系结构