
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í)交流

