0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

還在寫大量if來(lái)判斷?試試用一個(gè)規(guī)則執(zhí)行器來(lái)替代它

玩轉(zhuǎn)單片機(jī)與嵌入式 ? 來(lái)源:稀土掘金技術(shù)社區(qū) ? 作者:稀土掘金技術(shù)社區(qū) ? 2022-11-14 09:27 ? 次閱讀

近日在公司領(lǐng)到一個(gè)小需求,需要對(duì)之前已有的試用用戶申請(qǐng)規(guī)則進(jìn)行拓展。我們的場(chǎng)景大概如下所示:

13a0dc28-63a9-11ed-8abf-dac502259ad0.jpg

按照上述的條件我們可以得出的結(jié)論是:

咱們的主要流程主要是基于 and 或者 or 的關(guān)系。

如果有一個(gè)不匹配的話,其實(shí)咱們后續(xù)的流程是不用執(zhí)行的,就是需要具備一個(gè)短路的功能。

對(duì)于目前的現(xiàn)狀來(lái)說,我如果在原有的基礎(chǔ)上來(lái)改,只要稍微注意一下解決需求不是很大的問題,但是說后面可維護(hù)性非常差。

后面經(jīng)過權(quán)衡過后,我還是決定將這個(gè)部分進(jìn)行重構(gòu)一下。

規(guī)則執(zhí)行器

針對(duì)這個(gè)需求,我首先梳理了一下咱們規(guī)則執(zhí)行器大概的設(shè)計(jì), 然后我設(shè)計(jì)了一個(gè) V1 版本和大家一起分享一下,如果大家也有這樣的case 可以給我分享留言,下面部分主要是設(shè)計(jì)和實(shí)現(xiàn)的流程和 code。

規(guī)則執(zhí)行器的設(shè)計(jì)

13b28202-63a9-11ed-8abf-dac502259ad0.jpg

對(duì)于規(guī)則的抽象并實(shí)現(xiàn)規(guī)則

13daa4ee-63a9-11ed-8abf-dac502259ad0.jpg

執(zhí)行器構(gòu)建

140220dc-63a9-11ed-8abf-dac502259ad0.jpg

執(zhí)行器的調(diào)用

141ec62e-63a9-11ed-8abf-dac502259ad0.jpg

總結(jié)

規(guī)則執(zhí)行器的優(yōu)點(diǎn)和缺點(diǎn)

優(yōu)點(diǎn):

比較簡(jiǎn)單,每個(gè)規(guī)則可以獨(dú)立,將規(guī)則,數(shù)據(jù),執(zhí)行器拆分出來(lái),調(diào)用方比較規(guī)整;

我在 Rule 模板類中定義 convert 方法做參數(shù)的轉(zhuǎn)換這樣可以能夠,為特定 rule 需要的場(chǎng)景數(shù)據(jù)提供拓展。

缺點(diǎn):

上下 rule 有數(shù)據(jù)依賴性,如果直接修改公共傳輸對(duì)象 dto這樣設(shè)計(jì)不是很合理,建議提前構(gòu)建數(shù)據(jù)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 執(zhí)行器
    +關(guān)注

    關(guān)注

    5

    文章

    377

    瀏覽量

    19358

原文標(biāo)題:還在寫大量 if 來(lái)判斷?試試用一個(gè)規(guī)則執(zhí)行器來(lái)替代它

文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī)與嵌入式,微信公眾號(hào):玩轉(zhuǎn)單片機(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    溫室中無(wú)線執(zhí)行器節(jié)點(diǎn)設(shè)計(jì)

    摘要:介紹了溫室中無(wú)線傳感網(wǎng)絡(luò)的組成及其工作過程,采用基于ARM?Cortex?-M3 的LMS3S1968 微控制和無(wú)線收發(fā)芯片nRF905 設(shè)計(jì)了執(zhí)行器節(jié)點(diǎn)。從硬件和軟件兩個(gè)
    發(fā)表于 11-02 16:11

    基于LabVIEW的航天執(zhí)行器測(cè)試解決方案

    內(nèi))采集到的電機(jī)振動(dòng)進(jìn)行分析。振動(dòng)測(cè)量是分析的部分,可以幫助我們預(yù)測(cè)測(cè)試結(jié)束前的故障情況。我們需要個(gè)帶有充電放大器的負(fù)載電源來(lái)測(cè)量執(zhí)行器
    發(fā)表于 04-11 09:40

    prisma氣動(dòng)執(zhí)行器資料

    prisma氣動(dòng)執(zhí)行器.part01.rar prisma氣動(dòng)執(zhí)行器.part02.rar prisma氣動(dòng)執(zhí)行器.part03.rar prisma氣動(dòng)執(zhí)行器.part04.r
    發(fā)表于 05-03 23:34 ?910次閱讀

    執(zhí)行器由什么組成_執(zhí)行器的工作原理

    在過程控制系統(tǒng)中,執(zhí)行器執(zhí)行機(jī)構(gòu)和自動(dòng)化調(diào)節(jié)機(jī)構(gòu)兩部分組成。自動(dòng)化調(diào)節(jié)機(jī)構(gòu)通過執(zhí)行元件直接改變生產(chǎn)過程的參數(shù),使生產(chǎn)過程滿足預(yù)定的要求。執(zhí)行機(jī)構(gòu)則接受來(lái)自控制
    發(fā)表于 01-21 15:18 ?1.2w次閱讀
    <b class='flag-5'>執(zhí)行器</b>由什么組成_<b class='flag-5'>執(zhí)行器</b>的工作原理

    氣動(dòng)執(zhí)行器的常見故障和解決方法

    氣動(dòng)執(zhí)行器從文字上就能看出這類是通過氣壓力來(lái)操作的控制設(shè)備,和電動(dòng)執(zhí)行器對(duì)比,氣動(dòng)執(zhí)行器的適應(yīng)能力更好,價(jià)格也便宜,合理的結(jié)構(gòu)讓其負(fù)載力更大,實(shí)現(xiàn)了對(duì)高力矩輸出的目標(biāo)。同時(shí)比電動(dòng)
    發(fā)表于 01-21 15:36 ?7505次閱讀

    氣動(dòng)執(zhí)行器的組成_氣動(dòng)執(zhí)行器選型

    氣動(dòng)執(zhí)行器的調(diào)節(jié)機(jī)構(gòu)的種類和構(gòu)造大致相同,主要是執(zhí)行機(jī)構(gòu)不同。因此在氣動(dòng)執(zhí)行器介紹時(shí)分為執(zhí)行機(jī)構(gòu)和調(diào)節(jié)閥兩部分。氣動(dòng)執(zhí)行器
    發(fā)表于 01-21 15:43 ?4035次閱讀

    電動(dòng)執(zhí)行器和風(fēng)門執(zhí)行器之間的差別是什么

    風(fēng)門執(zhí)行器的作用: 風(fēng)門執(zhí)行器關(guān)鍵作用在供熱系統(tǒng)尾端,根據(jù)與溫度控制裝置起連動(dòng),調(diào)整室溫。假如房間內(nèi)總面積很大,能夠安裝2個(gè)地采暖環(huán)城路,這時(shí)候只需應(yīng)用
    發(fā)表于 02-18 17:19 ?2595次閱讀

    應(yīng)用風(fēng)門執(zhí)行器時(shí)的關(guān)鍵點(diǎn)是什么

    風(fēng)門執(zhí)行器有很多優(yōu)勢(shì),它有較強(qiáng)的使用性能和相對(duì)性較高的精度。專業(yè)人士表明,風(fēng)門執(zhí)行器安全系數(shù)高,在各種各樣標(biāo)準(zhǔn)下都能穩(wěn)定工作。除此之外,當(dāng)代風(fēng)門執(zhí)行器的智能化系統(tǒng)也獲得了提升。根據(jù)多
    發(fā)表于 02-22 11:42 ?522次閱讀

    電動(dòng)執(zhí)行器控制精度低的解決方案

    不管怎樣種類的電動(dòng)執(zhí)行器,控制精度全是十分關(guān)鍵的點(diǎn),電動(dòng)執(zhí)行器也是這般。在電動(dòng)執(zhí)行器的應(yīng)用全過程中,有時(shí)候會(huì)發(fā)生控制精度低的難題,下邊電動(dòng)執(zhí)行器
    發(fā)表于 04-06 10:18 ?1277次閱讀

    羅托克執(zhí)行器的優(yōu)勢(shì)有哪些

    羅托克執(zhí)行器常常與各種閥門搭配運(yùn)用,起到能夠遠(yuǎn)程操控,定時(shí)啟閉的作用,給大家日常的運(yùn)用帶來(lái)極大的便利。那么羅托克執(zhí)行器的優(yōu)勢(shì)還有哪些呢?下面由我來(lái)為大家解說下。 羅托克
    發(fā)表于 03-29 22:55 ?926次閱讀

    如何使用Arduino控制大型線性執(zhí)行器

    本文將向你展示如何使用 Arduino 和兩個(gè)按鈕對(duì)大型線性執(zhí)行器進(jìn)行基本的手動(dòng)控制。在第組代碼中,第一個(gè)按鈕伸出執(zhí)行器,第二
    的頭像 發(fā)表于 04-24 17:25 ?2134次閱讀
    如何使用Arduino控制大型線性<b class='flag-5'>執(zhí)行器</b>

    使用單個(gè)執(zhí)行器來(lái)創(chuàng)建推式呼吸機(jī)

    電子發(fā)燒友網(wǎng)站提供《使用單個(gè)執(zhí)行器來(lái)創(chuàng)建推式呼吸機(jī).zip》資料免費(fèi)下載
    發(fā)表于 12-19 10:36 ?0次下載
    使用單個(gè)<b class='flag-5'>執(zhí)行器</b><b class='flag-5'>來(lái)</b>創(chuàng)建推式呼吸機(jī)

    氣動(dòng)執(zhí)行器與電動(dòng)執(zhí)行器:哪個(gè)更好?

    氣動(dòng)執(zhí)行器與電動(dòng)執(zhí)行器:哪個(gè)更好?
    的頭像 發(fā)表于 03-13 16:30 ?5382次閱讀
    氣動(dòng)<b class='flag-5'>執(zhí)行器</b>與電動(dòng)<b class='flag-5'>執(zhí)行器</b>:哪個(gè)更好?

    氣動(dòng)執(zhí)行器換電動(dòng)執(zhí)行器怎么換

    氣動(dòng)執(zhí)行器和電動(dòng)執(zhí)行器是工業(yè)自動(dòng)化領(lǐng)域中常見的兩種驅(qū)動(dòng)方式。它們各自有其特點(diǎn)和優(yōu)勢(shì),適用于不同的應(yīng)用場(chǎng)景。在某些情況下,可能需要將氣動(dòng)執(zhí)行器更換為電動(dòng)執(zhí)行器,以滿足特定的需求。 了解氣
    的頭像 發(fā)表于 07-10 14:47 ?821次閱讀

    電動(dòng)執(zhí)行器常見故障及處理方法

    電動(dòng)執(zhí)行器種廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的設(shè)備,通過接收控制信號(hào)來(lái)驅(qū)動(dòng)閥門、閘門等設(shè)備,實(shí)現(xiàn)遠(yuǎn)程控制和自動(dòng)化操作。然而,在使用過程中,電動(dòng)執(zhí)行器
    的頭像 發(fā)表于 07-10 14:49 ?3665次閱讀