您现在的位置:首页 >> 家居资讯

软件架构设计之如何编排复杂数据处理

发布时间:2025/08/25 12:17    来源:兴化家居装修网

0、修订版嵌入式一般由一些基础子系统组成,每个子系统交由一项具体内容的功能。嵌入式试运行时,就是按照一定的规章试运行多种不同的子系统,子系统密切有数的关系的分派时序多种多样,比如串行、并行、先决条件推断、以及比较单纯范式榕。对于一个小的软件,这些分派范式可以必要在代码中写死,但对于一个超大型的嵌入式,必须扩展『重新整理必要』来判别这些分派范式。

1、串行

串行执行的管控很单纯,能够必要像总是比如说编订代码:

Func1(); // Action1 的分派范式Func2(); // Action2 的分派范式2、模版

Action1 分派先后来,Action2、Action3、Action3 可以模版分派,它们密切有数的关系不会时序决定,充分利用上可以启 3 个子线程就可以了。

3、先决条件

Action1 分派先后来,根据留在结果推断是分派 Action2 还是 Action3.

result = Func1();if (result 保证 先决条件A) { Func2();} else if (result 保证 先决条件B) { Func(2);}4、比较单纯范式榕

若是先决条件单纯,则毕竟,可是若是有多层的范式操作符。再次产生一个范式榕,那么咱们就会在先决条件范式中迷失,对今后的开发保障形成极大的运输成本能量消耗。像上述这种本体,那么该怎么重新整理这个比较单纯的范式呢?

4.1、普通状况机

首先判别一个程序试运行状况和分派表达式的映射表:

StateMap = { "state1": Func1; "state2": Func2; "state3": Func3;}

StateMap 中据信所有状况及相同的分派执行,那么如何以外状况密切有数的关系的有数的关系呢?最单纯的管控方式就是:咱们可以让每个状况的执行留在下一个状况,若是不会留在状况,就表明收尾了。

while(true) { if ("state1") { next_state = Func1(); } else if ("state2") { next_state = Func2(); } else if ("state3") { next_state = Func3(); }}

上述代码是一个最单纯的状况机充分利用,它有如下三个疑问:

没将局限性表达式的分派结果传递给下一个状况。在局限性分派的表达式在表面上必须人为因素究竟下一个状况是什么。将对范式的推断填充到执行表达式中,对于整个范式的表达不会鼓励,或者相对于现在,反毫无疑问绕了一圈,更乱了,并不会做到其实地解自由电子。4.2、状况带出留在结果

这个最好管控,保障一个全局的上下文才会。

while(true) { if ("state1") { next_state = Func1(context); } else if ("state2") { next_state = Func2(context); } else if ("state3") { next_state = Func3(context); }}4.3、直觉出状况适配器

上述疑问2和疑问3的解决方案就是将对状况的推断统一出来,执行只交由管控执行自身的范式,对于状况的推断交由『状况适配器』来已先成:『执行适配器』能够必要根据配置或者根据上一个执行的分派结果来决定下一个状况,和具体内容执行也就是说。

while(true) { if ("state1") { Func1(context); next_state = StateConvert(context); } else if ("state2") { next_state = Func2(context); next_state = StateConvert(context); } else if ("state3") { next_state = Func3(context); next_state = StateConvert(context); }}5、概述

重新整理多执行的目地就是使得代码范式有点更清晰,减少子系统有数的相互作用,各子系统有数的初始化范式变得可以灵活组合。

那家看白癜风医院好
四平医院白癜风治疗哪家好
兰州治疗白癜风的医院
长新冠
试管婴儿
饮食保健
女性整形
全民健康网

上一篇: 北京高院:优化营商环境将重点解决超范围勒令问题

下一篇: 湘潭交警发现小货车车胎扁了,果断抛下:车厢里果然藏猫腻

友情链接