成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開(kāi)發(fā)
模板方法模式是框架中最常用的設(shè)計(jì)模式。其根本的思路是將算法由框架固定,而將算法中具體的操作交給二次開(kāi)發(fā)者實(shí)現(xiàn)。

1. 模板方法模式

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

TBool CBaseDevice::Init()
{
  if ( DownloadFPGA() != KErrNone )
  {
    LOG(LOG_ERROR,_L(“Download FPGA fail”));
    return EFalse;
  }
  if ( InitKeyPad() != KerrNone )
  {
    LOG(LOG_ERROR,_L(“Initialize keypad fail”));
    return EFalse;
  }
  return ETrue;
}

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

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

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

class CDrawObj
{
  public:
    virtual int DrawObjTypeID()=0;
    virtual Icon GetToolBarIcon()=0;
    virtual void Draw(Rect rect)=0;
    virtual CDrawObj* Clone()=0;
};

3. 消息訂閱模式

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

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

4. 裝飾器模式

裝飾器模式賦予了框架在后期增加功能的能力。框架定義裝飾器的抽象基類(lèi),而由具體的實(shí)現(xiàn)者實(shí)現(xiàn),動(dòng)態(tài)地添加到框架中。

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

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

責(zé)任編輯:趙寧寧 來(lái)源: 物聯(lián)網(wǎng)IoT技術(shù)
相關(guān)推薦

2022-12-14 08:06:08

2023-01-04 09:37:16

2011-04-22 09:26:57

MVC設(shè)計(jì)

2022-07-04 12:07:57

智慧城市智能建筑物聯(lián)網(wǎng)

2025-02-18 16:27:01

2021-08-11 20:17:22

推薦算法系統(tǒng)

2009-06-22 11:01:12

2018-12-05 16:25:14

2011-06-01 17:35:35

Android Activity

2013-12-01 15:34:25

2009-04-11 15:12:24

2018-05-02 16:34:56

EAF嵌入式框架

2019-10-24 07:42:28

Java引用GC

2023-07-16 22:48:59

2015-05-08 12:24:10

惡意軟件逃避技術(shù)

2019-08-13 09:00:24

REST API身份認(rèn)證密鑰

2019-10-23 05:08:55

docker網(wǎng)絡(luò)模式網(wǎng)絡(luò)協(xié)議

2012-05-10 15:44:22

Windows 8磁盤(pán)

2019-10-22 14:06:13

Docker軟件Linux

2012-01-18 10:20:42

框架設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日本成人久久 | 精品九九九 | 香蕉久久网| 日韩精品一区二区三区在线观看 | 久久久这里都是精品 | 久久在线看 | 亚洲激情第一页 | 国产精品毛片一区二区在线看 | 日韩电影中文字幕 | 一区二区在线 | 亚洲免费在线 | 中文一区二区 | 日韩视频精品在线 | 日本欧美国产 | 国产亚洲精品一区二区三区 | 日韩一区二区在线播放 | 国产一在线观看 | tube国产 | 国产精品一区二区在线播放 | 91麻豆产精品久久久久久 | 高清成人av| 中文字幕第7页 | 一区二区三区四区在线视频 | 国产欧美日韩精品在线观看 | 亚洲成av人片在线观看 | 岛国av免费看 | 欧美日韩一区二区在线观看 | 精品日韩一区二区三区av动图 | 久久久久精 | 欧美日韩国产精品一区二区 | 国产精品久久久久久久久久 | 久久久久久久久综合 | 免费看国产精品视频 | 视频一区二区三区在线观看 | 中文字幕第一页在线 | 久久久精品在线 | 欧美日韩亚洲系列 | 免费国产一区 | 性在线| 欧美一级在线观看 | 91在线视频观看免费 |