国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

百度seo網(wǎng)站360優(yōu)化大師官方網(wǎng)站

百度seo網(wǎng)站,360優(yōu)化大師官方網(wǎng)站,做一份網(wǎng)站動態(tài)圖多少錢,網(wǎng)站建設(shè)全程揭秘Android 當(dāng)中的 Fragment 協(xié)作解耦方式 文章目錄 Android 當(dāng)中的 Fragment 協(xié)作解耦方式第一章 前言介紹第01節(jié) 遇到的問題第02節(jié) 繪圖說明 第二章 核心代碼第01節(jié) 代理人接口第02節(jié) 中間人 Activity第03節(jié) 開發(fā)者A第04節(jié) 開發(fā)者B第05節(jié) 測試類 第一章 前言介紹 第01節(jié) 遇到的…

Android 當(dāng)中的 Fragment 協(xié)作解耦方式

文章目錄

  • Android 當(dāng)中的 Fragment 協(xié)作解耦方式
    • 第一章 前言介紹
      • 第01節(jié) 遇到的問題
      • 第02節(jié) 繪圖說明
    • 第二章 核心代碼
      • 第01節(jié) 代理人接口
      • 第02節(jié) 中間人 Activity
      • 第03節(jié) 開發(fā)者A
      • 第04節(jié) 開發(fā)者B
      • 第05節(jié) 測試類

第一章 前言介紹

第01節(jié) 遇到的問題

場景介紹:1、在同一個項目開發(fā)過程中, 程序員A 和 程序員B 開發(fā)著不同的功能模塊。2、有一天需要程序員 A 和 程序員B 之間功能模塊, 存在相互的調(diào)用關(guān)系。3、但是這些功能尚未開發(fā)完畢, 還在進(jìn)行中。問題來了:1、在未開發(fā)完畢之前, 如何實(shí)現(xiàn)相互之間能夠調(diào)用呢?2、怎樣才能保證功能的協(xié)作開發(fā), 正確有效的完成呢?試想場景:1、如果程序員 A 直接創(chuàng)建了 程序員B 開發(fā)類的對象, 調(diào)用程序員B 的方法。2、那么假設(shè)有一天程序員B 修改了其功能和操作, 那么程序員A 也被迫需要跟著修改。(依賴關(guān)系很強(qiáng)烈)



第02節(jié) 繪圖說明

問題細(xì)節(jié)介紹

在這里插入圖片描述


問題的解決方案

在這里插入圖片描述





第二章 核心代碼

為了簡單直擊問題點(diǎn),我們采用 Java 代碼去模擬 Android 的一些基礎(chǔ)環(huán)境。

第01節(jié) 代理人接口

// 定義中間銜接的接口
public interface IServiceA2B {// 處理點(diǎn)擊姓名的操作, 傳遞兩個參數(shù)void handleClickName(int position, String message);// 處理點(diǎn)擊頭像的操作, 沒有傳遞參數(shù)void handleClickAvert();
}



第02節(jié) 中間人 Activity

// 中間的 Activity 銜接人
public class Activity {// 在初始化 Activity 的 onCreate() 方法的時候, 初始化兩個 Fragmentprivate FragmentA fragmentA;private FragmentB fragmentB;public void onCreate(){// 初始化兩個 FragmentfragmentA = new FragmentA();fragmentB = new FragmentB();// 兩個Fragment 都會持有 Activity的對象fragmentA.onCreateView(this);fragmentB.onCreateView(this);}// 定義中間銜接的接口, 該接口采用內(nèi)部類的方式實(shí)現(xiàn), 便于統(tǒng)一管理。// 如果存在多個 FragmentA.FragmentB.FragmentC.FragmentD...// 可以分別實(shí)現(xiàn)不同的接口方式private final IServiceA2B serviceA2B = new IServiceA2B() {@Overridepublic void handleClickName(int position, String message) {fragmentB.showName(position, message);}@Overridepublic void handleClickAvert() {fragmentB.showAvert();}};// 暴露出接口對象, 給事件發(fā)起者, 持有該接口, 通過接口去調(diào)用具體的實(shí)現(xiàn)。public IServiceA2B getServiceA2B() {return serviceA2B;}
}



第03節(jié) 開發(fā)者A

事件的發(fā)起方。FragmentA


// 總結(jié): 對于事件的發(fā)起者, FragmentA 需要做的三件事情:
// 1. 通過 Fragment 拿到 Activity 的對象。
// 2. 通過 Activity 的對象, 拿到代理接口的對象 service
// 3. 在處理點(diǎn)擊事件的時候, 采用代理接口的對象, 去調(diào)用具體的方法
public class FragmentA {private Activity activity;public void onCreateView(Activity activity){System.out.println("FragmentA.onCreateView");this.activity = activity;buttonClickAvert();buttonClickName(66, "張無忌");}private void buttonClickName(int position, String name) {System.out.println("FragmentA.buttonClickName");activity.getServiceA2B().handleClickName(position, name);}private void buttonClickAvert() {System.out.println("FragmentA.buttonClickAvert");activity.getServiceA2B().handleClickAvert();}
}



第04節(jié) 開發(fā)者B

事件的接收方。FragmentB

// 總結(jié): 對于事件的接收者, FragmentB 需要做的三件事情:
// 1. 自己的 Fragment 當(dāng)中, 去定義接收到數(shù)據(jù)之后的實(shí)現(xiàn)展示的邏輯
// 2. 在外部定義需要銜接的接口, 代理接口 IServiceXXX
// 3. 在Activity 當(dāng)中, 去定義接口的內(nèi)部類實(shí)現(xiàn)。
//      I.  接口實(shí)現(xiàn)的方法當(dāng)中, 采用 FragmentB 的對象, 去調(diào)用 FragmentB 當(dāng)中的方法
//      II. 對外暴露出代理接口的對象, 也就是快捷鍵生產(chǎn) getIServiceXXX 的對象, 讓發(fā)送者持有代理接口對象。
public class FragmentB {private Activity activity;public void onCreateView(Activity activity){System.out.println("FragmentB.onCreateView");this.activity = activity;}public void showAvert() {System.out.println("FragmentB.showAvert");}public void showName(int position, String name) {System.out.println("FragmentB.showName.position: " + position +", name: " + name);}}



第05節(jié) 測試類

模擬過程

public class Main {public static void main(String[] args) {System.out.println("APP啟動了...");Activity activity = new Activity();activity.onCreate();System.out.println("APP退出了....");}
}

最終運(yùn)行的結(jié)果

APP啟動了...
FragmentA.onCreateView
FragmentA.buttonClickAvert
FragmentB.showAvert
FragmentA.buttonClickName
FragmentB.showName.position: 66, name: 張無忌
FragmentB.onCreateView
APP退出了....






http://aloenet.com.cn/news/38934.html

相關(guān)文章:

  • 北京 網(wǎng)站建設(shè) 公司公眾號怎么引流推廣
  • 做小程序好還是做微網(wǎng)站好現(xiàn)代網(wǎng)絡(luò)營銷的方式
  • 電子商務(wù)網(wǎng)站建設(shè)需要哪些技術(shù)seo綜合查詢平臺
  • 直播網(wǎng)站怎么做壓力測試站內(nèi)關(guān)鍵詞自然排名優(yōu)化
  • 一品威客app下載鄭州優(yōu)化公司有哪些
  • 網(wǎng)站建設(shè)方案書安全性中山疫情最新消息
  • 專業(yè)vi設(shè)計公司哪家強(qiáng)seo排名關(guān)鍵詞點(diǎn)擊
  • 知名網(wǎng)站制作公百度搜索詞排名
  • 模板網(wǎng)站可以做seo嗎網(wǎng)站設(shè)計制作
  • 網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣方案網(wǎng)頁開發(fā)用什么軟件
  • 做網(wǎng)站的費(fèi)用是多少錢搜索引擎優(yōu)化是什么工作
  • flask公司網(wǎng)站開發(fā)seo 優(yōu)化思路
  • 大型網(wǎng)站構(gòu)建實(shí)施方案代寫文案平臺
  • 淄博專業(yè)做網(wǎng)站簡單免費(fèi)制作手機(jī)網(wǎng)站
  • 凡科互動游戲怎么玩高分免費(fèi)seo工具
  • 鶴山區(qū)網(wǎng)站建設(shè)關(guān)鍵詞排名點(diǎn)擊軟件
  • 網(wǎng)站建設(shè)服務(wù)費(fèi)會計分錄品牌推廣方案案例
  • 佛山企業(yè)網(wǎng)站搭建公司百度認(rèn)證
  • 贛州網(wǎng)站優(yōu)化公司網(wǎng)站分析
  • 網(wǎng)站建設(shè)網(wǎng)頁設(shè)計用什么軟件當(dāng)下最流行的營銷方式
  • 秦皇島網(wǎng)站建設(shè)價格我要推廣網(wǎng)
  • 麗水網(wǎng)站建設(shè)哪家好網(wǎng)址導(dǎo)航哪個好
  • 做系統(tǒng)網(wǎng)站化學(xué)sem是什么意思
  • 最牛的手機(jī)視頻網(wǎng)站建設(shè)免費(fèi)的網(wǎng)站軟件
  • 自己做的網(wǎng)站字體變成方框18歲以上站長統(tǒng)計
  • 網(wǎng)站建設(shè)總體規(guī)劃百度云官網(wǎng)
  • 不登陸不收費(fèi)的網(wǎng)站鏈接seo優(yōu)化一般優(yōu)化哪些方面
  • 可以做外鏈的音樂網(wǎng)站百度廣告聯(lián)盟app下載官網(wǎng)
  • 如何給公司取一個好名字優(yōu)化網(wǎng)站關(guān)鍵詞優(yōu)化
  • ps中網(wǎng)站頁面做多大的豬八戒網(wǎng)接單平臺