久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. android 責(zé)任鏈模式

      時(shí)間:2022-07-02 19:39:16 計(jì)算機(jī)軟件 我要投稿
      • 相關(guān)推薦

      android 責(zé)任鏈模式

      最近在繼續(xù)iPhone業(yè)務(wù)的同時(shí)還需要重新拾起Android。在有些生疏的情況下,決定從Android源碼中感悟一些Android的風(fēng)格和方式。在學(xué)習(xí)源碼的過程中也發(fā)現(xiàn)了一些通用的模式,希望通過一個(gè)系列的文章總結(jié)和分享下。

      android 責(zé)任鏈模式

      職責(zé)鏈模式使多個(gè)對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。將這些對象連成一條鏈,并沿著這條鏈傳遞請求,直到有一個(gè)對象處理它為止。

      Android系統(tǒng)中根據(jù)XML排布文件創(chuàng)建界面的過程中通常需要針對不同類型的控件通過各種工廠生成?紤]到效率問題,Android采用了一個(gè)標(biāo)準(zhǔn)職責(zé)鏈模式的變種,我將這稱之為“AB計(jì)劃”。區(qū)別示意圖如下所示:

      標(biāo)準(zhǔn)職責(zé)鏈

      AB計(jì)劃職責(zé)鏈

      LayoutInflater中的工廠職責(zé)鏈設(shè)計(jì)如下圖所示:

      其中FactoryMerger包含兩個(gè)工廠f1和f2,創(chuàng)建時(shí)候會先通過f1創(chuàng)建,如果失敗會嘗試f2。而且由于FactoryMerger也實(shí)現(xiàn)了Factory接口,因此也可以聚合到更高一層的FactoryMerger。和標(biāo)準(zhǔn)職責(zé)鏈模式相比,無法確保各個(gè)鏈節(jié)之間的先后關(guān)系,但如果聚合合理就可以有效減少遞歸次數(shù),實(shí)現(xiàn)代碼如下:

      public interface Factory {

      public View onCreateView(String name, Context context, AttributeSet attrs);

      }

      private static class FactoryMerger implements Factory {

      private final Factory mF1, mF2;

      FactoryMerger(Factory f1, Factory f2) {

      mF1 = f1;

      mF2 = f2;

      }

      public View onCreateView(String name, Context context, AttributeSet attrs) {

      View v = mF1.onCreateView(name, context, attrs);

      if (v != null) return v;

      return mF2.onCreateView(name, context, attrs);

      }

      }

      其中,F(xiàn)actory 和FactoryMerger 分別是LayoutInflater內(nèi)嵌接口和內(nèi)嵌類。


      【android 責(zé)任鏈模式】相關(guān)文章:

      制造企業(yè)供應(yīng)鏈下物流管理運(yùn)作模式論文07-04

      android就業(yè)前景201607-03

      2016android就業(yè)前景07-03

      2016年android就業(yè)前景如何07-03

      諾基亞會推出 Android 手機(jī)嗎?07-12

      如何面試 Android 工程師?07-13

      提高網(wǎng)站權(quán)重,關(guān)注反鏈和外鏈07-14

      愛之鏈作文04-27

      諾基亞手機(jī)怎樣運(yùn)行Android圖案解鎖07-12

      諾基亞為什么不出高端Android機(jī)?07-12