本公開涉及計算機,特別涉及一種軟件系統(tǒng)切換的方法和裝置。
背景技術(shù):
1、隨著計算機技術(shù)的不斷發(fā)展,技術(shù)人員所能使用的編程語言也越來越多。目前,這些編程語言主要分為基于原型的編程語言和基于類的編程語言。
2、基于原型的編程語言由于編寫方便、部署便捷等優(yōu)點,而得到廣泛使用。但是,基于原型的編程語言執(zhí)行效率不高、且維護(hù)成本較高,而基于類的編程語言則執(zhí)行效率更高、維護(hù)成本更低。因此,目前亟需一種方法能夠?qū)⒒谠偷木幊陶Z言的代碼轉(zhuǎn)換成基于類的編程語言的代碼。
技術(shù)實現(xiàn)思路
1、本公開提供了一種代碼轉(zhuǎn)換的方法和裝置,可以將基于原型的編程語言的代碼轉(zhuǎn)換成基于類的編程語言的代碼,相應(yīng)的技術(shù)方案如下:
2、第一方面,提供了一種代碼轉(zhuǎn)換的方法,方法包括:識別第一代碼中的原對象,其中,第一代碼是基于原型的編程語言的代碼。在確定原對象滿足類生成條件的情況下,在第二代碼中生成原對象對應(yīng)的類,其中,第二代碼是基于原型的編程語言的代碼。在對象對應(yīng)的類中,定義對象中定義的方法。
3、在本公開提供的方案中,識別基于原型的編程語言的代碼中的原對象,如果原對象滿足類生成條件,則在基于類的編程語言的代碼中生成該原對象對應(yīng)的類,并在該對象對應(yīng)的類中,實現(xiàn)該對象中定義的方法。這樣,便實現(xiàn)了將基于原型的編程語言的代碼轉(zhuǎn)換為基于類的編程語言的代碼。
4、在一種可能的實現(xiàn)方式中,類生成條件可以包括:
5、如果確定原對象中定義有方法,則確定原對象滿足類生成條件,在第二代碼中生成原對象對應(yīng)的類。
6、對于原對象中定義有方法的情況,說明原對象為復(fù)雜對象,所以可以在第二代碼中生成其對應(yīng)類。
7、在一種可能的實現(xiàn)方式中,類生成條件可以包括:
8、如果確定原對象有原型對象,則確定原對象滿足類生成條件,在第二代碼中生成原對象對應(yīng)的類。
9、對于原對象有原型對象的情況,說明原對象為復(fù)雜對象,所以可以在第二代碼中生成其對應(yīng)類。
10、在一種可能的實現(xiàn)方式中,類生成條件可以包括:
11、如果確定原對象為所述第一代碼中其他原對象的原型對象,則確定原對象滿足類生成條件,在第二代碼中生成原對象對應(yīng)的類。
12、對于原對象有原型對象的情況,說明原對象為復(fù)雜對象,所以可以在第二代碼中生成其對應(yīng)類。
13、在一種可能的實現(xiàn)方式中,為了實現(xiàn)基于原型的編程語言中對對象動態(tài)添加字段的特性,在本公開提供的方案中,可以通過map的形式,在基于類的編程語言的代碼中實現(xiàn)該特性。相應(yīng)的,處理可以如下:
14、在原對象對應(yīng)的類中,創(chuàng)建映射表map,通過map,存儲原對象中的字段。
15、在一種可能的實現(xiàn)方式中,在原對象對應(yīng)的類中,可以定義獲取函數(shù),用來在原對象對應(yīng)的map中讀取字段。
16、在一種可能的實現(xiàn)方式中,為了實現(xiàn)基于原型的編程語言中根據(jù)原型鏈讀取字段的特性,在本公開提供的方案中,可以通過上述獲取函數(shù),來實現(xiàn)該特征。相應(yīng)的,處理可以如下:
17、在識別到第一代碼中包括第一原對象和第二原對象,且第二原對象是第一原對象的原型對象的情況下,在第一原對象對應(yīng)的類對象中讀取字段時,調(diào)用第一原對象對應(yīng)類中定義的獲取函數(shù),在第一原對象對應(yīng)的類中的第一map(也即是第一原對象對應(yīng)的類對象的map)讀取第一字段,如果在第一map中未讀取到第一字段,則調(diào)用第二原對象對應(yīng)的類中定義的獲取函數(shù),在第二原對象對應(yīng)的類中的第二map讀取第一字段。
18、在一種可能的實現(xiàn)方式中,為了實現(xiàn)基于原型的編程語言中對對象動態(tài)添加字段的特性,在本公開提供的方案中,在原對象對應(yīng)的類中,定義設(shè)置函數(shù),用來在map中添加或修改字段。
19、在一種可能的實現(xiàn)方式中,在需要在原對象對應(yīng)的類對象中添加字段時,調(diào)用原對象對應(yīng)的類中定義的設(shè)置函數(shù),在原對象對應(yīng)的類中的map中,添加第二字段。
20、類對象即為對類的實例,可以通過對類進(jìn)行實例化得到,類對象中包括類中定義的全部內(nèi)容。
21、在一種可能的實現(xiàn)方式中,為了實現(xiàn)基于原型的編程語言中原型對象的特征,在本公開提供的方案中,在原對象對應(yīng)的類中,定義原型設(shè)置函數(shù),用來設(shè)置原對象對應(yīng)的類對象的原型對象。原對象對應(yīng)的類對象的原型對象,即為原對象的原型對象的類對象。
22、在一種可能的實現(xiàn)方式中,在確定原對象不滿足類生成條件的情況下,說明該原對象只包含一些字段,屬于簡單對象,在本公開提供的方案中,在第二代碼中創(chuàng)建原對象對應(yīng)的map,將原對象中的字段,寫入原對象對應(yīng)的map。
23、第二方面,提供了一種代碼轉(zhuǎn)換的裝置,所述裝置包括:
24、識別模塊,用于識別第一代碼中的原對象,其中,所述第一代碼是基于原型的編程語言的代碼;
25、生成模塊,用于在確定所述原對象滿足類生成條件的情況下,在第二代碼中生成所述原對象對應(yīng)的類,其中,所述第二代碼是基于原型的編程語言的代碼;
26、定義模塊,用于在所述對象對應(yīng)的類中,定義所述對象中定義的方法。
27、在一種可能的實現(xiàn)方式中,所述生成模塊,用于:
28、如果確定所述原對象中定義有方法,則確定所述原對象滿足類生成條件,在第二代碼中生成所述原對象對應(yīng)的類。
29、在一種可能的實現(xiàn)方式中,所述生成模塊,用于:
30、如果確定所述原對象有原型對象,則確定所述原對象滿足類生成條件,在第二代碼中生成所述原對象對應(yīng)的類。
31、在一種可能的實現(xiàn)方式中,所述生成模塊,用于:
32、如果確定所述原對象為所述第一代碼中其他原對象的原型對象,則確定所述原對象滿足類生成條件,在第二代碼中生成所述原對象對應(yīng)的類。
33、在一種可能的實現(xiàn)方式中,所述生成模塊,還用于:
34、在所述原對象對應(yīng)的類中,創(chuàng)建映射表map;
35、通過所述map,存儲所述原對象中的字段。
36、在一種可能的實現(xiàn)方式中,所述定義模塊,還用于:
37、在所述原對象對應(yīng)的類中,定義獲取函數(shù),其中,所述獲取函數(shù)用于在所述map中讀取字段。
38、在一種可能的實現(xiàn)方式中,所述識別模塊,用于:
39、識別所述第一代碼中的第一原對象和第二原對象,其中,所述第二原對象是所述第一原對象的原型對象;
40、所述裝置還包括調(diào)用模塊,用于:
41、調(diào)用所述第一原對象對應(yīng)類中定義的獲取函數(shù),在所述第一原對象對應(yīng)的類中的第一map讀取第一字段,如果在所述第一map中未讀取到所述第一字段,則調(diào)用所述第二原對象對應(yīng)的類中定義的獲取函數(shù),在所述第二原對象對應(yīng)的類中的第二map讀取所述第一字段。
42、在一種可能的實現(xiàn)方式中,所述定義模塊,還用于:
43、在所述原對象對應(yīng)的類中,定義設(shè)置函數(shù),其中,所述設(shè)置函數(shù)用于在所述map中添加或修改字段。
44、在一種可能的實現(xiàn)方式中,所述裝置還包括調(diào)用模塊,用于:
45、調(diào)用所述原對象對應(yīng)的類中定義的設(shè)置函數(shù),在所述原對象對應(yīng)的類中的map中,添加第二字段。
46、在一種可能的實現(xiàn)方式中,所述定義模塊,還用于:
47、在所述原對象對應(yīng)的類中,定義原型設(shè)置函數(shù),其中,所述原型設(shè)置函數(shù)用于設(shè)置所述原對象對應(yīng)的類對象的原型對象,所述原型對象對應(yīng)的類對象為所述原型對象對應(yīng)的類的實例。
48、在一種可能的實現(xiàn)方式中,所述生成模塊,還用于:
49、在確定所述原對象不滿足類生成條件的情況下,在第二代碼中創(chuàng)建所述原對象對應(yīng)的map;
50、將所述原對象中的字段,寫入所述原對象對應(yīng)的map。
51、第三方面,提供了一種計算設(shè)備集群,該計算設(shè)備集群包括至少一個計算設(shè)備,每個計算設(shè)備包括處理器和存儲器,其中,至少一個計算設(shè)備的處理器用于執(zhí)行至少一個計算設(shè)備的存儲器中存儲的指令,以使得計算設(shè)備集群執(zhí)行如第一方面或在第一方面任一種可實現(xiàn)的方式中所述的方法。
52、第四方面,提供了一種包含指令的計算機程序產(chǎn)品,當(dāng)該指令被計算設(shè)備集群運行時,使得計算設(shè)備集群執(zhí)行如第一方面或在第一方面任一種可實現(xiàn)的方式中所述的方法。
53、第五方面,提供了一種計算機可讀存儲介質(zhì),包括計算機程序指令,當(dāng)該計算機程序指令由計算設(shè)備集群執(zhí)行時,該計算設(shè)備集群可以執(zhí)行如第一方面或在第一方面任一種可實現(xiàn)的方式中所述的方法。