什么叫函數(shù)式接口?
有且僅有一個(gè)抽象方法的接口(不包括默認(rèn)方法、靜態(tài)方法以及對(duì)Object方法的重寫)
函數(shù)式接口不同于以往的普通接口,它最大的作用其實(shí)是為了支持行為參數(shù)傳遞,比如傳遞Lambda、方法引用、函數(shù)式接口對(duì)應(yīng)的實(shí)例對(duì)象等。
大概講一下函數(shù)式接口方法傳遞的使用方法
背景:我們執(zhí)行業(yè)務(wù)數(shù)據(jù)更新的時(shí)候需要對(duì)相關(guān)業(yè)務(wù)ID進(jìn)行數(shù)據(jù)庫加鎖,不然會(huì)在同一個(gè)時(shí)刻由不同的用戶對(duì)同一條數(shù)據(jù)進(jìn)行Update操作;加鎖的組件是在update之前進(jìn)行加鎖,在進(jìn)行數(shù)據(jù)庫操作方法save,最后再解鎖,為了寫成公共的邏輯,采用函數(shù)式接口把save方法傳到加鎖組件里面,因?yàn)閷?duì)應(yīng)各種業(yè)務(wù)場(chǎng)景save的操作有不一樣的;



doBusiLock方法參數(shù)有三個(gè):
Action action:加鎖過程中需要執(zhí)行的方法體;
String lockId:鎖粒度,一般是業(yè)務(wù)編號(hào);
?String lockType:鎖類型,是哪一種業(yè)務(wù)類型,有可能同一個(gè)業(yè)務(wù)編號(hào)存在多種類型操作;
重點(diǎn)說一下Action?action,外面調(diào)用傳參是一個(gè)方法save(busiIno),進(jìn)入方法體后action.doAction()其實(shí)執(zhí)行的就是save(busiIno),俗話說就是被替換了;
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 我是一名大廠技術(shù)總監(jiān),題主的這個(gè)問題太常見了。 下面我結(jié)合我面試候選人的經(jīng)驗(yàn),以及我對(duì)高并發(fā)的理解,給你一個(gè)非常完...
- 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
- 一、SQL的執(zhí)行順序 順序:FROM——ON——JOIN——WHERE——GROUP BY——SUM、COUNT—...
- Linux 環(huán)境中,實(shí)現(xiàn)線程同步的常用方法有 4 種,分別稱為互斥鎖[http://c.biancheng.net...
- 大綱 ?? 函數(shù)式編程?? 什么是純函數(shù)?? 什么是副作用(Effect)?? 為什么要使用純函數(shù) ?? React函數(shù)組件...