欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法和裝置與流程

文檔序號:12664371閱讀:200來源:國知局
基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法和裝置與流程

本發(fā)明涉及計算機技術(shù),尤其涉及一種基于單一職責原則(Single responsibility principle,簡稱:SRP)實現(xiàn)代碼庫轉(zhuǎn)換軟件開發(fā)工具包(Software Developmenti Kit,簡稱:SDK)的方法和裝置。



背景技術(shù):

隨著計算機技術(shù)的飛速發(fā)展,很多項目都由若干個代碼庫組成,這些代碼庫之間有著不同程度的依賴,例如:登錄代碼庫通常情況下不需要對存取cookie、定位以及跳轉(zhuǎn)至web頁面等功能支持。若要用到這些功能時,需要依賴通用代碼庫的存取cookie功能,定位代碼庫的定位功能和網(wǎng)絡(luò)庫的web頁面跳轉(zhuǎn)功能等。

然而,當將上述不同的代碼庫抽取成獨立的SDK時,每個SDK不能依賴任何其他的代碼庫,而調(diào)用者需要SDK提供上述功能,因此,無法滿足調(diào)用者的功能需求。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法和裝置,以滿足調(diào)用者的功能需求。

第一方面,本發(fā)明提供一種基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法,包括:

獲取軟件開發(fā)工具包SDK的功能需求項,功能需求項中包含至少兩個功能項;

根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫;

將至少一個依賴代碼庫中的代碼遷移到目標代碼庫;

根據(jù)單一職責原則SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼;

根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK。

可選地,根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK之前,還包括:

對目標代碼庫中的資源名和/或文件名進行重構(gòu)。

可選地,根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫,包括:

確定目標代碼庫,獲取目標代碼庫的功能項;

獲取功能需求項中除去目標代碼庫的功能項之外的其余功能需求項;

獲取候選代碼庫的功能項;

將候選代碼庫的功能項與其余功能需求項進行匹配,確定具有匹配項的候選代碼庫為匹配項對應(yīng)的依賴代碼庫。

可選地,目標代碼庫和至少一個依賴代碼庫使用相同的編程語言。

第二方面,本發(fā)明提供一種基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的裝置,包括:

獲取模塊,用于獲取軟件開發(fā)工具包SDK的功能需求項,功能需求項中包含至少兩個功能項;

處理模塊,用于根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫;

遷移模塊,用于將至少一個依賴代碼庫中的代碼遷移到目標代碼庫;

處理模塊還用于根據(jù)單一職責原則SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼;

處理模塊,還用于根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK。

可選地,處理模塊還用于對目標代碼庫中的資源名和/或文件名進行重構(gòu)。

可選地,處理模塊具體用于確定目標代碼庫,獲取目標代碼庫的功能項;獲取功能需求項中除去目標代碼庫的功能項之外的其余功能需求項;獲取候選代碼庫的功能項;將候選代碼庫的功能項與其余功能需求項進行匹配,確定具有匹配項的候選代碼庫為匹配項對應(yīng)的依賴代碼庫。

可選地,目標代碼庫和至少一個依賴代碼庫使用相同的編程語言。

本發(fā)明提供的基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法和裝置,通過獲取軟件開發(fā)工具包SDK的功能需求項,功能需求項中包含至少兩個功能項;根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫;將至少一個依賴代碼庫中的代碼遷移到目標代碼庫;根據(jù)單一職責原則SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼;根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK,基于SRP實現(xiàn)將實現(xiàn)不能功能的代碼庫中的代碼抽離整合到一個目標代碼庫中,生成SDK;可以根據(jù)實際需求生成不同功能組合的SDK,從而,滿足調(diào)用者的功能需求。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法實施例一的流程示意圖;

圖2為本發(fā)明基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法實施例二的流程示意圖;

圖3為本發(fā)明基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法實施例三的流程示意圖;

圖4為本發(fā)明各基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的裝置實施例的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三”、“第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例例如能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

本發(fā)明所用到的名詞解釋:

SRP:一個類應(yīng)該只有一個發(fā)生變化的原因,如果它承擔了多于一個的職責,則意味著引起變化的原因有多個。如果一個類承擔的職責過多,那么就等同于把這些職責耦合在了一起。一個職責的變化可能會抑制到該類完成其他職責的能力,這樣的耦合會導致類的脆弱。當變化發(fā)生時,類的功能會受到意向不到的破壞。

應(yīng)用程序(Application,簡稱:App):電子設(shè)備軟件,是安裝在電子設(shè)備上的軟件,完善原始系統(tǒng)的不足與個性化。

SDK:一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺或操作系統(tǒng)等建立應(yīng)用程序時的開發(fā)工具的集合。

本發(fā)明通過獲取軟件開發(fā)工具包SDK的功能需求項,功能需求項中包含至少兩個功能項;根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫;將至少一個依賴代碼庫中的代碼遷移到目標代碼庫;根據(jù)單一職責原則SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼;根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK,基于SRP實現(xiàn)將實現(xiàn)不能功能的代碼庫中的代碼抽離整合到一個目標代碼庫中,生成SDK;可以根據(jù)實際需求生成不同功能組合的SDK,從而,滿足調(diào)用者的功能需求。并且,提高了SDK的生成效率,降低了開發(fā)成本,減小了SDK包的大小,提高了健壯性。

下面以具體地實施例對本發(fā)明的技術(shù)方案進行詳細說明。下面這幾個具體的實施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實施例不再贅述。

圖1為本發(fā)明基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法實施例一的流程示意圖,如下所示:

S101:獲取軟件開發(fā)工具包SDK的功能需求項。

其中,功能需求項中包含至少兩個功能項。

功能需求項例如:可以包括:登錄功能、定位功能、網(wǎng)絡(luò)請求功能、通用設(shè)置功能、支付功能和Web頁面調(diào)起等中的一種或多種。

S103:根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫。

目標代碼庫和至少一個依賴代碼庫使用相同的編程語言,編程語言例如可以是C語言或C++語言等,對此,本發(fā)明不作限制。

其中,目標代碼庫為登錄庫,依賴代碼庫;定位功能依賴定位服務(wù)庫;網(wǎng)絡(luò)請求功能依賴網(wǎng)絡(luò)庫;通用設(shè)置功能依賴通用組件庫;支付功能依賴支付庫;web頁面調(diào)起功能依賴頁面庫。

其中,功能需求項與依賴代碼庫的映射關(guān)系表1所示:

表1

S105:將至少一個依賴代碼庫中的代碼遷移到目標代碼庫。

例如:結(jié)合表1,將表1中需要SDK支持,且SDK未支持的功能項對應(yīng)發(fā)的依賴代碼庫的功能遷移到目標代碼庫。即:將定位服務(wù)庫、通用組件庫和支付庫的代碼遷移到登錄庫。

S107:根據(jù)SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼。

即:只保留相關(guān)結(jié)構(gòu),刪除其他無關(guān)內(nèi)容。

S109:根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK。

本實施例,通過獲取軟件開發(fā)工具包SDK的功能需求項,功能需求項中包含至少兩個功能項;根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫;將至少一個依賴代碼庫中的代碼遷移到目標代碼庫;根據(jù)單一職責原則SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼;根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK,基于SRP實現(xiàn)將實現(xiàn)不能功能的代碼庫中的代碼抽離整合到一個目標代碼庫中,生成SDK;可以根據(jù)實際需求生成不同功能組合的SDK,從而,滿足調(diào)用者的功能需求。

圖2為本發(fā)明基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法實施例二的流程示意圖,圖2是在圖1所示實施例的基礎(chǔ)上,可選地,在S109之前,還包括:

S108:對目標代碼庫中的資源名和/或文件名進行重構(gòu)。

本實施例,通過對目標代碼庫中的資源名和/或文件名進行重構(gòu),以使資源名和文件名命名更加合理,更編譯開發(fā)者理解其功能。

圖3為本發(fā)明基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的方法實施例三的流程示意圖,圖3是在圖1或圖2所示實施例的基礎(chǔ)上,S103的一種可能的實現(xiàn)方式的描述:

S1031:確定目標代碼庫,獲取目標代碼庫的功能項。

S1032:獲取功能需求項中除去目標代碼庫的功能項之外的其余功能需求項。

S1033:獲取候選代碼庫的功能項。

S1034:將候選代碼庫的功能項與其余功能需求項進行匹配,確定具有匹配項的候選代碼庫為匹配項對應(yīng)的依賴代碼庫。

本實施例,通過確定目標代碼庫,獲取目標代碼庫的功能項,獲取功能需求項中除去目標代碼庫的功能項之外的其余功能需求項,獲取候選代碼庫的功能項,將候選代碼庫的功能項與其余功能需求項進行匹配,確定具有匹配項的候選代碼庫為匹配項對應(yīng)的依賴代碼庫,從而,實現(xiàn)目標代碼庫和依賴代碼庫的確定。

在上述各實施例中,若功能需求項中包含依賴代碼庫不能實現(xiàn)的功能需求項,則開發(fā)人員對該功能需求項進行開發(fā),并基于SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼。

圖4為本發(fā)明各基于SRP實現(xiàn)代碼庫轉(zhuǎn)換SDK的裝置實施例的結(jié)構(gòu)示意圖,如圖4所示,本實施例的裝置包括:獲取模塊401、處理模塊402和遷移模塊403,其中,獲取模塊401用于獲取軟件開發(fā)工具包SDK的功能需求項,功能需求項中包含至少兩個功能項;處理模塊402用于根據(jù)SDK的功能需求項確定目標代碼庫和至少一個依賴代碼庫;遷移模塊403用于將至少一個依賴代碼庫中的代碼遷移到目標代碼庫;處理模塊402還用于根據(jù)單一職責原則SRP從目標代碼庫中抽離整合SDK的功能需求項對應(yīng)的代碼;處理模塊402還用于根據(jù)抽離整合后的SDK的功能需求項對應(yīng)的代碼生成SDK。

其中,目標代碼庫和至少一個依賴代碼庫使用相同的編程語言。

本實施例的裝置,對應(yīng)的可用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

在圖4中,處理模塊402還用于對目標代碼庫中的資源名和/或文件名進行重構(gòu)。

本實施例的裝置,對應(yīng)的可用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

在圖4中,處理模塊402具體用于確定目標代碼庫,獲取目標代碼庫的功能項;獲取功能需求項中除去目標代碼庫的功能項之外的其余功能需求項;獲取候選代碼庫的功能項;將候選代碼庫的功能項與其余功能需求項進行匹配,確定具有匹配項的候選代碼庫為匹配項對應(yīng)的依賴代碼庫。

本實施例的裝置,對應(yīng)的可用于執(zhí)行圖3所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。

本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南漳县| 安西县| 和政县| 全州县| 高阳县| 金堂县| 江永县| 额济纳旗| 佳木斯市| 乐至县| 高平市| 武宣县| 德庆县| 巨野县| 邵武市| 玉林市| 雷山县| 杭锦旗| 乐平市| 崇阳县| 庆云县| 汽车| 五华县| 井研县| 荔浦县| 五峰| 伊春市| 河北区| 韶山市| 灵丘县| 莱阳市| 凌云县| 台山市| 南部县| 休宁县| 高陵县| 宁南县| 高台县| 科技| 怀集县| 津市市|