Android Omnipotent:萬能接口庫

1.前言

  • 開發(fā)中,類與類之間交互又以下幾種方式:


    類之間交互方式.png
  • 上述那么多種方式都具備各種缺點(diǎn),是否有一種方式能解決上述的大部分缺點(diǎn)呢?

  • Omnipotent 庫(萬能接口庫),它就是解決樣式重復(fù)代碼、類之間交互耦合而誕生,還具備使用簡(jiǎn)單、鏈?zhǔn)秸{(diào)用的特點(diǎn)。

  • 本文特點(diǎn):圖片多,字體少

  • 文章中實(shí)例 linhaojian的Github


2.目錄

目錄.png

3.簡(jiǎn)介

介紹.png

4.原理

4.1 舉個(gè)例子

  • Activity與Fragment接口交互(Fragment需要把自己的數(shù)據(jù)發(fā)送至Activity)


    類與類接口交互.png
  • 上面的例子,在正常使用是沒有任何問題,假如遇到以下情況:

1)因業(yè)務(wù)需求變換/迭代,需要修改接口的函數(shù)為無參有返回。
2)新增多個(gè)Fragment時(shí),需要?jiǎng)?chuàng)建多個(gè)不同接口類。
3)接口函數(shù)中參數(shù)類型變換或者參數(shù)數(shù)量增多。

  • 這些問題都會(huì)讓你的代碼增加修改成本難度,而且不便于維護(hù)、迭代。

4.2 結(jié)合Omnipotent

那Omnipotent是如何解決這樣的問題呢?我們通過上圖例子結(jié)合解析如下圖:


Omnipotent原理.png
  • 從上圖可視,Omnipotent充當(dāng)接口的管理者同時(shí),也是接口函數(shù)調(diào)用者,觸發(fā)回調(diào)。
  • Omnipotent還是類之間交互的橋梁,把它們之間進(jìn)行解耦。

5.使用

5.1 API使用

API.png

5.2 如何在項(xiàng)目使用Omnipotent?

  • 第一步:
 allprojects {
  repositories {
   ...
   maven { url 'https://jitpack.io' }
  }
 }
  • 第二步:
 dependencies {
         implementation 'com.github.linhaojian:Omnipotent:1.2'
 }

5.3 示例

omnipotent.gif

6.設(shè)計(jì)思想

設(shè)計(jì)思想.png

7.總結(jié)

  • 到此,Omnipotent庫就介紹完畢,希望能在開發(fā)過程中幫助大家。
  • 如果喜歡我的分享,可以點(diǎn)擊 關(guān)注 或者 ,你們支持是我分享的最大動(dòng)力 。
  • linhaojian的Github

歡迎關(guān)注linhaojian_CSDN博客或者linhaojian_簡(jiǎn)書!

不定期分享關(guān)于安卓開發(fā)的干貨。


寫技術(shù)文章初心

  • 技術(shù)知識(shí)積累
  • 技術(shù)知識(shí)鞏固
  • 技術(shù)知識(shí)分享
  • 技術(shù)知識(shí)交流
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,361評(píng)論 25 708
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,137評(píng)論 2 59
  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,239評(píng)論 3 119
  • 今天晚上是由種子計(jì)劃的發(fā)起人任劍瓊女士給我們帶來的《種子在這里萌芽》,因?yàn)楸睅煷髮<遗R時(shí)講課的調(diào)整,明天的課調(diào)整為...
    陜縣1903賀紹芳閱讀 355評(píng)論 1 2
  • 今天是愉快的一天,陪同兒子小冬瓜同學(xué)去鐵槎山游學(xué),玩得相當(dāng)盡量。具體過程見《我家有個(gè)小冬瓜(五五二)——槎山游記》...
    王圣冰閱讀 292評(píng)論 0 0

友情鏈接更多精彩內(nèi)容