本發(fā)明涉及計算機(jī)科學(xué),特別是應(yīng)用于spring框架下實(shí)現(xiàn)類獲取的領(lǐng)域,尤其涉及一種多維可復(fù)用實(shí)現(xiàn)的獲取方法、裝置設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、目前,多維度信息與具體實(shí)現(xiàn)通常采用1對1的關(guān)系,無法實(shí)現(xiàn)一個實(shí)現(xiàn)類在不同維度層級間共用;也就意味著每當(dāng)有新的維度或維度值加入時,都需要開發(fā)與之對應(yīng)的全新實(shí)現(xiàn)類。這不僅導(dǎo)致了大量的重復(fù)工作,還使得代碼庫迅速膨脹,導(dǎo)致管理起來變得異常復(fù)雜。不僅如此,由于多維度與具體實(shí)現(xiàn)是1對1的關(guān)系,導(dǎo)致需要開發(fā)所有維度中每個值的笛卡爾積個實(shí)現(xiàn)(l*m*n*...),就會產(chǎn)生大量文件以及重復(fù)的冗余代碼,極大增加了開發(fā)成本,對于運(yùn)維來說,維護(hù)這么多文件也是一項(xiàng)艱巨的任務(wù)。一旦某個維度或值發(fā)生變動,可能就需要修改大量的代碼,也極大增加了出錯的風(fēng)險。
2、因此,如何開發(fā)一種方法能夠支持多維度有各自的實(shí)現(xiàn),同時支持多維度間復(fù)用處理邏輯一致的實(shí)現(xiàn)是一直亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、為此,本申請?zhí)峁┮环N或多種技術(shù)方案用以解決上述所述的現(xiàn)有技術(shù)缺陷,實(shí)現(xiàn)多維度有各自的特殊實(shí)現(xiàn),同時支持多維度間復(fù)用處理邏輯一致的實(shí)現(xiàn)。本發(fā)明提供一種多維可復(fù)用實(shí)現(xiàn)的獲取方法、裝置設(shè)備及存儲介質(zhì),用以解決至少一種技術(shù)問題。
2、為實(shí)現(xiàn)上述目的,第一方面,本發(fā)明提供一種多維可復(fù)用實(shí)現(xiàn)的獲取方法,應(yīng)用于一個接口在不同維度之間需要不同的實(shí)現(xiàn)的場景,包括:
3、所有實(shí)現(xiàn)根據(jù)設(shè)定規(guī)則進(jìn)行統(tǒng)一維度的排序,不同的維度之間采用連接符進(jìn)行連接,用于區(qū)分不同維度的實(shí)現(xiàn);
4、接收目標(biāo)參數(shù),所述參數(shù)包含當(dāng)前所需查找實(shí)現(xiàn)的全部維度信息的數(shù)組;
5、將維度數(shù)組中的每一個維度值通過所述連接符進(jìn)行拼接,拼接成完整的維度信息字符串;
6、根據(jù)所述完整的維度信息字符串,查找對應(yīng)的實(shí)現(xiàn);若找到實(shí)現(xiàn),則直接返回該實(shí)現(xiàn);若未能找到對應(yīng)實(shí)現(xiàn),則移除所述完整的維度信息字符串的末端維度,遞歸調(diào)用查找功能,繼續(xù)查找實(shí)現(xiàn),直到找到實(shí)現(xiàn)則直接返回該實(shí)現(xiàn),或直到移除維度數(shù)組至空,此時返回空值。
7、進(jìn)一步地,所述方法基于在spring框架中查找對應(yīng)的實(shí)現(xiàn),并且該方法由spring框架進(jìn)行實(shí)例化管理。
8、進(jìn)一步地,若某一維度缺乏特定的實(shí)現(xiàn),而需復(fù)用其他維度上的實(shí)現(xiàn)時,進(jìn)行如下操作:
9、在所述不同的維度之間采用連接符進(jìn)行連接過程中,無需連接所述缺乏特定的實(shí)現(xiàn)的維度的具體值;
10、在所述不同的維度之間采用連接符進(jìn)行連接過程中,不支持中間維度的缺省。
11、進(jìn)一步地,若經(jīng)過所述邏輯處理仍未能獲取到實(shí)現(xiàn),則移除所述維度數(shù)組中的首個元素,并遞歸調(diào)用查找功能,所述遞歸過程將持續(xù)進(jìn)行,直至找到實(shí)現(xiàn)直接返回所述實(shí)現(xiàn);或維度數(shù)組為空,此時返回空值。
12、第二方面,本發(fā)明還提供了一種多維可復(fù)用實(shí)現(xiàn)的獲取裝置,所述裝置包括:排序單元、接收單元、維度拼接單元、檢索單元;
13、所述排序單元:用于所有實(shí)現(xiàn)根據(jù)設(shè)定規(guī)則進(jìn)行統(tǒng)一維度的排序,不同的維度之間采用連接符進(jìn)行連接,用于區(qū)分不同維度的實(shí)現(xiàn);
14、所述接收單元:用于接收目標(biāo)參數(shù),所述參數(shù)包含當(dāng)前所需查找實(shí)現(xiàn)的全部維度信息的數(shù)組;
15、所述維度拼接單元:用于將維度數(shù)組中的每一個維度值通過所述連接符進(jìn)行拼接,拼接成完整的維度信息字符串;
16、所述檢索單元:用于根據(jù)所述完整的維度信息字符串,查找對應(yīng)的實(shí)現(xiàn);若找到實(shí)現(xiàn),則直接返回該實(shí)現(xiàn);若未能找到對應(yīng)實(shí)現(xiàn),則移除所述完整的維度信息字符串的末端維度,遞歸調(diào)用查找功能,繼續(xù)查找實(shí)現(xiàn),直到找到實(shí)現(xiàn)則直接返回該實(shí)現(xiàn),或直到移除維度數(shù)組至空,此時返回空值。
17、進(jìn)一步地,所述方法基于在spring框架中查找對應(yīng)的實(shí)現(xiàn),并且該方法由spring框架進(jìn)行實(shí)例化管理。
18、進(jìn)一步地,若某一維度缺乏特定的實(shí)現(xiàn),而需復(fù)用其他維度上的實(shí)現(xiàn)時,進(jìn)行如下操作:
19、在所述不同的維度之間采用連接符進(jìn)行連接過程中,無需連接所述缺乏特定的實(shí)現(xiàn)的維度的具體值。
20、在所述不同的維度之間采用連接符進(jìn)行連接過程中,不支持中間維度的缺省。
21、進(jìn)一步地,若經(jīng)過所述邏輯處理仍未能獲取到實(shí)現(xiàn),則移除所述維度數(shù)組中的首個元素,并遞歸調(diào)用查找功能,所述遞歸過程將持續(xù)進(jìn)行,直至找到實(shí)現(xiàn)直接返回所述實(shí)現(xiàn);或維度數(shù)組為空,此時返回空值。
22、第三方面,本發(fā)明提供了一種計算設(shè)備,包括:
23、存儲器,用于存儲程序指令;
24、處理器,用于調(diào)用所述存儲器中存儲的程序指令,按照獲得的程序指令執(zhí)行上述所述的一種多維可復(fù)用實(shí)現(xiàn)的獲取方法。
25、第四方面,本發(fā)明提供一種計算機(jī)可讀存儲介質(zhì),包括,計算機(jī)可讀指令,當(dāng)計算機(jī)讀取并執(zhí)行所述計算機(jī)可讀指令時,實(shí)現(xiàn)上述所述的一種多維可復(fù)用實(shí)現(xiàn)的獲取方法,所述可讀介質(zhì)可以為多個,所述多個可讀介質(zhì)相互之間能夠獨(dú)立運(yùn)行。
26、與現(xiàn)有技術(shù)相比,本方案通過所有實(shí)現(xiàn)根據(jù)設(shè)定規(guī)則進(jìn)行統(tǒng)一維度的排序,不同的維度之間采用連接符進(jìn)行連接,用于區(qū)分不同維度的實(shí)現(xiàn);接收目標(biāo)參數(shù),所述參數(shù)包含當(dāng)前所需查找實(shí)現(xiàn)的全部維度信息的數(shù)組;將維度數(shù)組中的每一個維度值通過所述連接符進(jìn)行拼接,拼接成完整的維度信息字符串;根據(jù)所述完整的維度信息字符串,查找對應(yīng)的實(shí)現(xiàn);若找到實(shí)現(xiàn),則直接返回該實(shí)現(xiàn);若未能找到對應(yīng)實(shí)現(xiàn),則移除所述完整的維度信息字符串的末端維度,遞歸調(diào)用查找功能,繼續(xù)查找實(shí)現(xiàn),直到找到實(shí)現(xiàn)則直接返回該實(shí)現(xiàn),或直到移除維度數(shù)組至空,此時返回空值。實(shí)現(xiàn)了多維度精確查找實(shí)現(xiàn)、同一個根維度下所有子維度復(fù)用實(shí)現(xiàn)、相同父維度下不同子維度復(fù)用實(shí)現(xiàn)、以及中間維度相同復(fù)用實(shí)現(xiàn)。有效減少重復(fù)代碼,以及重復(fù)的類文件,提升開發(fā)效率與質(zhì)量,降低開發(fā)、運(yùn)維成本。
1.一種多維可復(fù)用實(shí)現(xiàn)的獲取方法,應(yīng)用于一個接口在不同維度之間需要不同的實(shí)現(xiàn)的場景,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的多維可復(fù)用實(shí)現(xiàn)的獲取方法,其特征在于,所述方法基于在spring框架中查找對應(yīng)的實(shí)現(xiàn),并且該方法由spring框架進(jìn)行實(shí)例化管理。
3.根據(jù)權(quán)利要求1所述的多維可復(fù)用實(shí)現(xiàn)的獲取方法,其特征在于,若某一維度缺乏特定的實(shí)現(xiàn),而需復(fù)用其他維度上的實(shí)現(xiàn)時,進(jìn)行如下操作:
4.根據(jù)權(quán)利要求1所述的多維可復(fù)用實(shí)現(xiàn)的獲取方法,其特征在于,若經(jīng)過所述邏輯處理仍未能獲取到實(shí)現(xiàn),則移除所述維度數(shù)組中的首個元素,并遞歸調(diào)用查找功能,所述遞歸過程將持續(xù)進(jìn)行,直至找到實(shí)現(xiàn)直接返回所述實(shí)現(xiàn);或維度數(shù)組為空,此時返回空值。
5.一種多維可復(fù)用實(shí)現(xiàn)的獲取裝置,應(yīng)用于一個接口在不同維度之間需要不同的實(shí)現(xiàn)的場景,其特征在于,包括:
6.根據(jù)權(quán)利要求5所述的多維可復(fù)用實(shí)現(xiàn)的獲取裝置,其特征在于,所述方法基于在spring框架中查找對應(yīng)的實(shí)現(xiàn),并且該方法由spring框架進(jìn)行實(shí)例化管理。
7.根據(jù)權(quán)利要求5所述的多維可復(fù)用實(shí)現(xiàn)的獲取裝置,其特征在于,若某一維度缺乏特定的實(shí)現(xiàn),而需復(fù)用其他維度上的實(shí)現(xiàn)時,進(jìn)行如下操作:
8.根據(jù)權(quán)利要求5所述的多維可復(fù)用實(shí)現(xiàn)的獲取裝置,其特征在于,若經(jīng)過所述邏輯處理仍未能獲取到實(shí)現(xiàn),則移除所述維度數(shù)組中的首個元素,并遞歸調(diào)用查找功能,所述遞歸過程將持續(xù)進(jìn)行,直至找到實(shí)現(xiàn)直接返回所述實(shí)現(xiàn);或維度數(shù)組為空,此時返回空值。
9.一種計算設(shè)備,其特征在于,包括:
10.一種計算機(jī)可讀存儲介質(zhì),其特征在于,包括計算機(jī)可讀指令,當(dāng)計算機(jī)讀取并執(zhí)行所述計算機(jī)可讀指令時,實(shí)現(xiàn)如權(quán)利要求1至4中任一項(xiàng)方法,所述可讀介質(zhì)可以為多個,所述多個可讀介質(zhì)相互之間能夠獨(dú)立運(yùn)行。