深夜美女视频一区二区_91sao在线看片水片_亚洲日韩国语_精品中文字幕久久边人妻_高潮喷水香蕉视频色_白洁国产剧情Av手机在线_国产精品情侣呻吟_天空影院播放免费完整版视频_少妇高潮惨叫喷水在线观看_公交车大龟廷进我身体里

Hi,您好,歡迎來到西安盛圖軟件科技有限公司!

嵌入式框架設(shè)計中的四種常用模式

發(fā)布時間:2023-11-03 14:07:01


1. 模板方法模式

模板方法模式是框架中最常用的設(shè)計模式。其根本的思路是將算法由框架固定,而將算法中具體的操作交給二次開發(fā)者實現(xiàn)。例如一個設(shè)備初始化的邏輯,框架代碼如下:

image.png



DownloadFPGA 和 InitKeyPad 都是 CBaseDevice 定義的虛函數(shù),二次開發(fā)者創(chuàng)建一個繼承于 CBaseDevice 的子類,具體來實現(xiàn)這兩個接口??蚣芏x了調(diào)用的次序和錯誤的處理方式,二次開發(fā)者無須關(guān)心,也無權(quán)決定。


2. 創(chuàng)建型模式

由于框架通常都涉及到各種不同子類對象的創(chuàng)建,創(chuàng)建型模式是經(jīng)常使用的。例如一個繪圖軟件的框架,有一個基類定義了圖形對象的接口,基于它可以派生出橢圓,矩形,直線各種子類。當用戶繪制一個圖形時,框架就要實例化該子類。這時候可以用工廠方法,原型方法等等。

image.png


3. 消息訂閱模式

消息訂閱模式是最常用的分離數(shù)據(jù)和界面的方式。界面開發(fā)者只需要注冊需要的數(shù)據(jù),當數(shù)據(jù)變化時框架就會將數(shù)據(jù)“推”到界面。界面開發(fā)者可以無須關(guān)注數(shù)據(jù)的來源和內(nèi)部組織形式。


消息訂閱模式最常見的問題是同步模式下如何處理重入和超時。作為框架設(shè)計者,一定要考慮好這個問題。所謂重入,是二次開發(fā)者在消息的回調(diào)函數(shù)中執(zhí)行訂閱/取消訂閱的操作,這會破壞消息訂閱的機制。所謂超時是指二次開發(fā)者的消息回調(diào)函數(shù)處理時間過長,導(dǎo)致其他消息無法響應(yīng)。最簡單的辦法是使用異步模式,讓訂閱者和數(shù)據(jù)發(fā)布者在獨立進程/線程中運行。如果不具備此條件,則必須作為框架的重要約定,禁止二次開發(fā)者產(chǎn)生此類問題。

4. 裝飾器模式

裝飾器模式賦予了框架在后期增加功能的能力??蚣芏x裝飾器的抽象基類,而由具體的實現(xiàn)者實現(xiàn),動態(tài)地添加到框架中。


舉一個游戲中的例子,圖形繪制引擎是一個獨立的模塊,比如可以繪制人物的靜止,跑動等圖像。如果策劃決定在游戲中增加一種叫“隱身衣”的道具,要求穿著此道具的玩家在屏幕上顯示的是若有若無的半透明圖像。應(yīng)該如何設(shè)計圖像引擎來適應(yīng)后期的游戲升級呢?


當隱身衣被裝備后,就向圖像引擎添加一個過濾器。這是個極度簡化的例子,實際的游戲引擎要比這個復(fù)雜。裝飾器模式還常見用于數(shù)據(jù)的前置和后置處理上。



以上為本次所有分享內(nèi)容


addffbe8602b57d798f22949b3de8ce.png



上一篇:在 Linux 上使用 Docker 實現(xiàn)應(yīng)用程序打包和分發(fā)
下一篇:嵌入式系統(tǒng)概述及特點

歡迎登錄盛圖科技

歡迎注冊盛圖科技

已有賬號,立即登錄