日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

1. 模板方法模式

模板方法模式是框架中最常用的設(shè)計(jì)模式。其根本的思路是將算法由框架固定,而將算法中具體的操作交給二次開發(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ù),二次開發(fā)者創(chuàng)建一個(gè)繼承于CBaseDevice的子類,具體來實(shí)現(xiàn)這兩個(gè)接口??蚣芏x了調(diào)用的次序和錯(cuò)誤的處理方式,二次開發(fā)者無須關(guān)心,也無權(quán)決定。

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

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

由于框架通常都涉及到各種不同子類對(duì)象的創(chuàng)建,創(chuàng)建型模式是經(jīng)常使用的。例如一個(gè)繪圖軟件的框架,有一個(gè)基類定義了圖形對(duì)象的接口,基于它可以派生出橢圓,矩形,直線各種子類。當(dāng)用戶繪制一個(gè)圖形時(shí),框架就要實(shí)例化該子類。這時(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ù)和界面的方式。界面開發(fā)者只需要注冊(cè)需要的數(shù)據(jù),當(dāng)數(shù)據(jù)變化時(shí)框架就會(huì)將數(shù)據(jù)“推”到界面。界面開發(fā)者可以無須關(guān)注數(shù)據(jù)的來源和內(nèi)部組織形式。

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

4. 裝飾器模式

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

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

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

分享到:
標(biāo)簽:嵌入式 框架
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定