本發(fā)明涉及頁面訪問及展示技術(shù)領(lǐng)域,更具體地,涉及一種列表頁訪問和展示方法及其系統(tǒng)。
背景技術(shù):
在客戶端的列表頁面訪問以及展示過程中,會(huì)涉及到很多處理邏輯,目前傳統(tǒng)的方案是一個(gè)列表頁面對(duì)應(yīng)一套頁面相關(guān)的邏輯,當(dāng)需要對(duì)某一個(gè)具體的列表頁面訪問和展示時(shí),采用該列表頁面對(duì)應(yīng)的相關(guān)邏輯來進(jìn)行。
由于多個(gè)頁面有很多相似的處理代碼邏輯,會(huì)導(dǎo)致這些相同部分業(yè)務(wù)邏輯大量重復(fù)的代碼編寫。產(chǎn)品一旦進(jìn)行產(chǎn)品需求的變更,每次都需要修改多個(gè)列表頁面的邏輯代碼,這樣很容易引入bug的產(chǎn)生和極其不易維護(hù)等缺點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種克服上述問題或者至少部分地解決上述問題的列表頁訪問和展示方法及其系統(tǒng)。
根據(jù)本發(fā)明的一個(gè)方面,提供一種列表頁訪問和展示方法,包括:
s1,針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;
s2,定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;
s3,對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
本發(fā)明的有益效果為:在設(shè)計(jì)客戶端的列表頁的模板時(shí),將列表頁模板父類定義為抽象類型,通過并在列表頁模板父類中定義普通方法和抽象方法,對(duì)于每一個(gè)不同的列表頁的實(shí)現(xiàn),為每一個(gè)列表頁定義一個(gè)列表頁子類,每一個(gè)列表頁子類繼承列表頁模板父類,通過調(diào)用列表模板類中的普通方法來實(shí)現(xiàn)每一個(gè)列表頁訪問和展示過程中的相同邏輯,而通過在每一個(gè)列表頁子類中復(fù)寫列表頁模板父類中定義的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁訪問和展示過程中互不相同的邏輯,通過統(tǒng)一的業(yè)務(wù)邏輯的封裝和差異性業(yè)務(wù)邏輯的拆分來兼容客戶端中所有列表頁的處理邏輯。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以作如下改進(jìn)。
進(jìn)一步的,所述普通方法包括列表頁的列表屬性設(shè)置方法和發(fā)送數(shù)據(jù)請(qǐng)求方法,所述抽象方法包括請(qǐng)求數(shù)據(jù)地址獲取方法和請(qǐng)求參數(shù)獲取方法。
進(jìn)一步的,所述步驟s3具體包括:
s31,在列表頁模板父類中調(diào)用列表屬性設(shè)置方法,對(duì)列表頁進(jìn)行屬性設(shè)置;
s32,分別獲取列表頁子類通過復(fù)寫列表頁模板父類中的請(qǐng)求數(shù)據(jù)地址獲取方法傳遞的請(qǐng)求數(shù)據(jù)地址,和通過復(fù)寫列表頁模板父類中的請(qǐng)求參數(shù)獲取方法傳遞的請(qǐng)求參數(shù);
s33,根據(jù)請(qǐng)求數(shù)據(jù)地址和請(qǐng)求參數(shù),生成數(shù)據(jù)訪問請(qǐng)求,并調(diào)用發(fā)送數(shù)據(jù)請(qǐng)求方法向服務(wù)器發(fā)送所述數(shù)據(jù)訪問請(qǐng)求;
s34,接收服務(wù)器返回的數(shù)據(jù)結(jié)果,將數(shù)據(jù)結(jié)果以列表頁的形式進(jìn)行展示。
進(jìn)一步的,所述步驟s34具體包括:
s341,當(dāng)接收到服務(wù)器返回的數(shù)據(jù)結(jié)果,將數(shù)據(jù)結(jié)果放入視圖容器中;
s342,判斷視圖容器中的每一項(xiàng)數(shù)據(jù)結(jié)果的所屬類型,并根據(jù)每一項(xiàng)數(shù)據(jù)結(jié)果的所屬類型,采取相應(yīng)的布局將每一項(xiàng)數(shù)據(jù)結(jié)果在列表頁上進(jìn)行加載展示。
進(jìn)一步的,所述步驟s342具體包括:
在客戶端中設(shè)置監(jiān)聽函數(shù),通過監(jiān)聽函數(shù)監(jiān)聽列表頁滑動(dòng)事件;
當(dāng)監(jiān)聽到列表頁滑動(dòng)事件,統(tǒng)計(jì)列表頁當(dāng)前已經(jīng)加載的數(shù)據(jù)項(xiàng)個(gè)數(shù),當(dāng)已經(jīng)加載的數(shù)據(jù)項(xiàng)個(gè)數(shù)達(dá)到預(yù)設(shè)的加載個(gè)數(shù),則再次向服務(wù)器發(fā)送數(shù)據(jù)訪問請(qǐng)求。
進(jìn)一步的,所述步驟s33中列表頁模板父類通過http網(wǎng)絡(luò)請(qǐng)求向服務(wù)器發(fā)送數(shù)據(jù)訪問請(qǐng)求。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種列表頁訪問和展示系統(tǒng),包括:
第一定義模塊,用于針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;
第二定義模塊,用于定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;
調(diào)用和復(fù)寫模塊,用于對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
進(jìn)一步的,所述普通方法包括列表頁的列表屬性設(shè)置方法和發(fā)送數(shù)據(jù)請(qǐng)求方法,所述抽象方法包括請(qǐng)求數(shù)據(jù)地址獲取方法和請(qǐng)求參數(shù)獲取方法。
進(jìn)一步的,所述調(diào)用和復(fù)寫模塊包括第一調(diào)用單元和第二調(diào)用單元,所述系統(tǒng)還包括獲取模塊和接收模塊;
第一調(diào)用單元,用于在列表頁模板父類中調(diào)用列表屬性設(shè)置方法,對(duì)列表頁進(jìn)行屬性設(shè)置;
獲取模塊,用于分別獲取列表頁子類通過復(fù)寫列表頁模板父類中的請(qǐng)求數(shù)據(jù)地址獲取方法向列表頁模板父類傳遞的請(qǐng)求數(shù)據(jù)地址,和通過復(fù)寫列表頁模板父類中的請(qǐng)求參數(shù)獲取方法向列表頁模板父類傳遞的請(qǐng)求參數(shù);
第二調(diào)用單元,用于根據(jù)請(qǐng)求數(shù)據(jù)地址和請(qǐng)求參數(shù),生成數(shù)據(jù)訪問請(qǐng)求,并調(diào)用發(fā)送數(shù)據(jù)請(qǐng)求方法向服務(wù)器發(fā)送所述數(shù)據(jù)訪問請(qǐng)求;
接收模塊,用于接收服務(wù)器返回的數(shù)據(jù)結(jié)果,將數(shù)據(jù)結(jié)果以列表頁的形式進(jìn)行展示。
根據(jù)本發(fā)明的第三方面,提供了一種列表頁的訪問和展示方法的設(shè)備,包括處理器(processor)、存儲(chǔ)器(memory)和總線;
所述處理器和存儲(chǔ)器通過所述總線完成相互間的通信;
所述存儲(chǔ)器存儲(chǔ)有可被所述處理器執(zhí)行的程序指令,所述處理器調(diào)用所述程序指令能夠執(zhí)行如下方法:
針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;
定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;
對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
附圖說明
圖1為本發(fā)明一個(gè)實(shí)施例的列表頁訪問和展示方法流程圖;
圖2為本發(fā)明另一個(gè)實(shí)施例的列表頁訪問和展示系統(tǒng)連接框圖;
圖3為本發(fā)明又一個(gè)實(shí)施例的列表頁訪問和展示系統(tǒng)整體連接框圖;
圖4為本發(fā)明再一個(gè)實(shí)施例的列表頁訪問和展示系統(tǒng)連接框圖;
圖5為本發(fā)明一個(gè)實(shí)施例的列表頁訪問和展示方法的設(shè)備連接框圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
參見圖1,圖1提供了本發(fā)明一個(gè)實(shí)施例的列表頁訪問和展示方法,編寫了一套抽象的列表頁模板邏輯,通過該邏輯的編寫可以兼容目前客戶端所有列表頁內(nèi)容的訪問和展現(xiàn)。該方法包括:s1,針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;s2,定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;s3,對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
由于在客戶端中有多個(gè)列表頁的訪問和展示,在每一個(gè)列表頁訪問和展示的過程中,每一個(gè)列表頁展示的內(nèi)容或者形式有些是相同的,有些是不同的。傳統(tǒng)的處理方式是為每一個(gè)列表頁的訪問和展示過程編寫一套對(duì)應(yīng)的邏輯,在某一個(gè)具體的列表頁訪問和展示過程中,都會(huì)采用與該列表頁對(duì)應(yīng)的邏輯來處理,這樣會(huì)非常復(fù)雜。因此,本實(shí)施例編寫一套基本上能夠兼容客戶端上所有列表頁的訪問和展示的列表頁處理邏輯。
具體為,針對(duì)客戶端需要訪問和展示的所有的列表頁,定義一個(gè)抽象類型的列表頁模板父類,并在列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法。其中的普通方法主要是針對(duì)每一個(gè)列表頁的相同部分,抽象方法主要是針對(duì)每一個(gè)列表頁的不同部分。
然后為每一個(gè)列表頁定義一個(gè)列表頁子類,每一個(gè)列表頁子類都繼承列表頁模板父類,即列表頁模板父類作為每一個(gè)列表頁子類的父類。每一個(gè)列表頁子類繼承列表頁父類,則在列表頁子類中均具有列表頁模板父類的功能。通過這樣的設(shè)計(jì),使得對(duì)于每一個(gè)列表頁的不同部分的邏輯,可以延遲到列表頁子類中去實(shí)現(xiàn)。
在每一個(gè)具體的列表頁訪問和展示的過程中,對(duì)于每一個(gè)列表頁相同部分的邏輯,通過調(diào)用列表頁模板父類中的普通方法來實(shí)現(xiàn),而對(duì)于每一個(gè)列表頁不同部分的邏輯,則通過在每一個(gè)列表頁子類中復(fù)寫列表頁模板父類中的抽象函數(shù)來實(shí)現(xiàn),通過在每一個(gè)列表頁子類中復(fù)寫列表頁模板父類中的抽象函數(shù)能夠?qū)崿F(xiàn)每一個(gè)列表頁的不同部分。
本實(shí)施例所設(shè)計(jì)的列表頁模板是用于兼容客戶端中所有列表頁面的處理邏輯,為了實(shí)現(xiàn)兼容多個(gè)頁面邏輯這個(gè)目標(biāo),不能通過定義具體的實(shí)現(xiàn)類來實(shí)現(xiàn),而是需要定義抽象類對(duì)整個(gè)業(yè)務(wù)邏輯類進(jìn)行抽象的業(yè)務(wù)功能實(shí)現(xiàn)。
其中,具體的業(yè)務(wù)類只能實(shí)現(xiàn)具體的某一個(gè)業(yè)務(wù)邏輯功能,抽象類能夠用于描述一類抽象的業(yè)務(wù)事件,對(duì)一類具體相似的功能特性進(jìn)行抽象的描述。
本實(shí)施例所設(shè)計(jì)的列表頁模板父類是通過抽象類的方式來進(jìn)行描述的,能夠兼容多種列表頁。列表頁模板父類中主要分為兩部分,一部分為具體的業(yè)務(wù)功能實(shí)現(xiàn)部分,另一部分為抽象的業(yè)務(wù)功能實(shí)現(xiàn)部分,具體的業(yè)務(wù)實(shí)現(xiàn)部分,主要是實(shí)現(xiàn)多個(gè)列表頁面中相同的部分,抽象業(yè)務(wù)邏輯這一層主要是通過相關(guān)的抽象函數(shù)來實(shí)現(xiàn)不同的業(yè)務(wù)部分,然后通過這些抽象函數(shù)來占位到相應(yīng)的具體業(yè)務(wù)部分類達(dá)到整體流程的完整性。抽象函數(shù)在列表頁模板父類中僅僅存在定義,并沒有具體實(shí)現(xiàn),抽象函數(shù)的實(shí)現(xiàn)需要在每一個(gè)列表子類來完成相應(yīng)的實(shí)現(xiàn)操作。
因此,本實(shí)施例可通過編寫一套通用的抽象類型的列表頁模板父類,并在列表頁模板父類中定義普通方法和抽象方法,對(duì)于每一個(gè)不同的列表頁的實(shí)現(xiàn),為每一個(gè)列表頁定義一個(gè)列表頁子類,每一個(gè)列表頁子類繼承列表頁模板父類,通過調(diào)用列表模板類中的普通方法來實(shí)現(xiàn)每一個(gè)列表頁訪問和展示過程中的相同邏輯,而通過在每一個(gè)列表頁子類中復(fù)寫列表頁模板父類中定義的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁訪問和展示過程中互不相同的邏輯,通過統(tǒng)一的業(yè)務(wù)邏輯的封裝和差異性業(yè)務(wù)邏輯的拆分來兼容客戶端中所有列表頁的處理邏輯。
在本發(fā)明的一個(gè)實(shí)施例中,所述普通方法包括列表頁的列表屬性設(shè)置方法和發(fā)送數(shù)據(jù)請(qǐng)求方法,所述抽象方法包括請(qǐng)求數(shù)據(jù)地址獲取方法和請(qǐng)求參數(shù)獲取方法。
在客戶端的列表頁訪問和展示的過程中,每一個(gè)列表頁的相同部分通過定義對(duì)應(yīng)的普通方法來實(shí)現(xiàn),而每一個(gè)列表頁的不同部分通過先在列表頁模板父類中定義對(duì)應(yīng)的抽象函數(shù)來實(shí)現(xiàn)。本實(shí)施例將每一個(gè)列表頁的不同部分的邏輯進(jìn)行抽離并通過抽象函數(shù)的形式來進(jìn)行呈現(xiàn),抽象函數(shù)在列表頁模板父類中僅僅有定義,而具體的實(shí)現(xiàn)時(shí)延遲到列表頁子類中進(jìn)行。
可以理解為抽象函數(shù)就是一個(gè)待實(shí)現(xiàn)功能的占位符,定義這個(gè)占位符主要是為了確保具體業(yè)務(wù)邏輯的流程的實(shí)現(xiàn),這樣能夠方便在具體業(yè)務(wù)邏輯中借助調(diào)用抽象函數(shù)來完成整個(gè)具體邏輯的實(shí)現(xiàn)。
上述的普通方法通常包括列表屬性設(shè)置方法和發(fā)送數(shù)據(jù)請(qǐng)求方法,分別用于每一個(gè)列表頁的列表屬性設(shè)置之用和發(fā)送數(shù)據(jù)請(qǐng)求之用,這些都是每一個(gè)列表頁共同的部分。而抽象方法通常包括請(qǐng)求數(shù)據(jù)地址獲取方法和請(qǐng)求參數(shù)獲取方法,其中,對(duì)于每一個(gè)列表頁的訪問過程,每一個(gè)列表頁中內(nèi)容的數(shù)據(jù)來源是不同的,在向服務(wù)器進(jìn)行數(shù)據(jù)訪問的過程中,需要傳入要訪問的數(shù)據(jù)的數(shù)據(jù)地址來源,因此,使用抽象方法來實(shí)現(xiàn)。同理,每一個(gè)列表頁的請(qǐng)求參數(shù)也是不同的,因此,也通過抽象方法來實(shí)現(xiàn)。
在本發(fā)明的另一個(gè)實(shí)施例中,所述步驟s3具體包括:s31,在列表頁模板父類中調(diào)用列表屬性設(shè)置方法,對(duì)列表頁進(jìn)行屬性設(shè)置;s32,分別獲取列表頁子類通過復(fù)寫列表頁模板父類中的請(qǐng)求數(shù)據(jù)地址獲取方法傳遞的請(qǐng)求數(shù)據(jù)地址,和通過復(fù)寫列表頁模板父類中的請(qǐng)求參數(shù)獲取方法傳遞的請(qǐng)求參數(shù);s33,根據(jù)請(qǐng)求數(shù)據(jù)地址和請(qǐng)求參數(shù),生成數(shù)據(jù)訪問請(qǐng)求,并調(diào)用發(fā)送數(shù)據(jù)請(qǐng)求方法向服務(wù)器發(fā)送所述數(shù)據(jù)訪問請(qǐng)求;s34,接收服務(wù)器返回的數(shù)據(jù)結(jié)果,將數(shù)據(jù)結(jié)果以列表頁的形式進(jìn)行展示。
在每一個(gè)列表頁訪問和展示的整個(gè)過程中,首先對(duì)每一個(gè)列表頁的列表屬性進(jìn)行設(shè)置,通常,在客戶端中,所有列表頁的列表頁屬性都是一樣的,因此,在對(duì)每一個(gè)列表頁的屬性進(jìn)行設(shè)置時(shí),只需要調(diào)用列表頁模板父類中的列表屬性設(shè)置方法這一普通方法即可實(shí)現(xiàn)對(duì)每一個(gè)列表頁的屬性設(shè)置。在向服務(wù)器進(jìn)行數(shù)據(jù)訪問的過程中,需要知道每一個(gè)列表頁需要訪問的具體數(shù)據(jù),因此,針對(duì)每一個(gè)列表頁,需要向服務(wù)器發(fā)送每一個(gè)列表頁需要訪問數(shù)據(jù)的數(shù)據(jù)地址和請(qǐng)求參數(shù)??蛻舳酥械牧斜眄撃0甯割惈@取每一個(gè)列表頁子類傳遞的請(qǐng)求數(shù)據(jù)地址的請(qǐng)求參數(shù)。其中,具體的傳遞方法為,由于每一個(gè)列表頁子類均繼承了列表頁模板父類,而在列表頁模板父類中已經(jīng)分別定義了抽象類型的請(qǐng)求數(shù)據(jù)獲取方法和抽象類型的請(qǐng)求參數(shù)獲取方法,因此,在每一個(gè)列表頁子類中,只需要通過復(fù)寫列表頁模板父類中的請(qǐng)求數(shù)據(jù)獲取方法和請(qǐng)求參數(shù)獲取方法,即可將請(qǐng)求數(shù)據(jù)地址和請(qǐng)求參數(shù)傳遞給列表頁模板父類中。
列表頁模板父類獲取到列表頁的請(qǐng)求數(shù)據(jù)地址和請(qǐng)求參數(shù)后,生成數(shù)據(jù)訪問請(qǐng)求,其中,訪問請(qǐng)求中包括該列表頁請(qǐng)求的數(shù)據(jù)地址和請(qǐng)求參數(shù)。隨后列表頁模板父類發(fā)送數(shù)據(jù)請(qǐng)求方法這一普通方法,并通過http(hypertexttransferprotocol,超文本傳輸協(xié)議)網(wǎng)絡(luò)請(qǐng)求將生成的數(shù)據(jù)訪問請(qǐng)求發(fā)送給服務(wù)器,并接收服務(wù)器返回的數(shù)據(jù)結(jié)果,且對(duì)數(shù)據(jù)結(jié)果以列表的形式進(jìn)行展示。
在本發(fā)明的一個(gè)實(shí)施例中,所述步驟s34具體包括:s341,當(dāng)接收到服務(wù)器返回的數(shù)據(jù)結(jié)果,將數(shù)據(jù)結(jié)果放入視圖容器中;s342,判斷視圖容器中的每一項(xiàng)數(shù)據(jù)結(jié)果的所屬類型,并根據(jù)每一項(xiàng)數(shù)據(jù)結(jié)果的所屬類型,采取相應(yīng)的布局將每一項(xiàng)數(shù)據(jù)結(jié)果在列表頁上進(jìn)行加載展示。
當(dāng)客戶端接收到服務(wù)器返回的數(shù)據(jù)結(jié)果,將數(shù)據(jù)結(jié)果放入視圖容器中,等待進(jìn)行加載展示。在客戶端上進(jìn)行列表頁的展示過程中,客戶端需要檢測(cè)視圖容器中每一數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型,不同數(shù)據(jù)類型的數(shù)據(jù)項(xiàng),在列表頁上的布局不同。即客戶端先判斷視圖容器中每一數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型,并根據(jù)每一數(shù)據(jù)項(xiàng)的所屬類型,采取相應(yīng)的布局將每一數(shù)據(jù)項(xiàng)在列表頁上進(jìn)行加載展示。
在本發(fā)明的另一個(gè)實(shí)施例,所述步驟s342具體包括:在客戶端中設(shè)置監(jiān)聽函數(shù),通過監(jiān)聽函數(shù)監(jiān)聽列表頁滑動(dòng)事件;當(dāng)監(jiān)聽到列表頁滑動(dòng)事件,統(tǒng)計(jì)列表頁當(dāng)前已經(jīng)加載的數(shù)據(jù)項(xiàng)個(gè)數(shù),當(dāng)已經(jīng)加載的數(shù)據(jù)項(xiàng)個(gè)數(shù)達(dá)到預(yù)設(shè)的加載個(gè)數(shù),則再次向服務(wù)器發(fā)送數(shù)據(jù)訪問請(qǐng)求。
在列表頁進(jìn)行數(shù)據(jù)項(xiàng)的加載展示的過程中,在客戶端中設(shè)置監(jiān)聽函數(shù),主要是通過監(jiān)聽函數(shù)監(jiān)聽列表頁滑動(dòng)時(shí)間。在用戶進(jìn)行瀏覽列表頁時(shí),若瀏覽到列表頁的底部時(shí),會(huì)通過滑動(dòng)列表頁瀏覽更多的內(nèi)容,其中,用戶瀏覽的列表頁中更多的內(nèi)容是客戶端進(jìn)行加載展示的。因此,當(dāng)客戶端中的監(jiān)聽函數(shù)監(jiān)聽到列表頁滑動(dòng)事件,則統(tǒng)計(jì)該列表頁當(dāng)前已經(jīng)加載的數(shù)據(jù)項(xiàng)個(gè)數(shù),到列表頁當(dāng)前已經(jīng)加載的數(shù)據(jù)項(xiàng)的個(gè)數(shù)達(dá)到預(yù)設(shè)的加載個(gè)數(shù),則需要再次向服務(wù)器發(fā)送數(shù)據(jù)訪問請(qǐng)求,從服務(wù)器處得到數(shù)據(jù)進(jìn)行加載展示。
通過實(shí)現(xiàn)上述的抽象部分和具體部分的實(shí)現(xiàn)邏輯,即建立好了列表頁模板父類。此時(shí)如果需要實(shí)現(xiàn)一個(gè)具體的列表頁面的訪問和展示,僅僅需要定義一個(gè)新的列表頁面子類,并且讓該列表頁面子類繼承這個(gè)抽象的列表頁模板父類。然后在列表葉子類中復(fù)寫在列表頁模板父類中定義好的抽象方法,這樣這個(gè)列表頁子類就具備了整套完整的列表相關(guān)的邏輯。
可以看到最終的實(shí)現(xiàn)列表頁面僅僅需要復(fù)寫列表頁面中的可變部分(也就是抽象函數(shù)部分)的業(yè)務(wù)邏輯就能夠?qū)崿F(xiàn)一整套列表頁面加載的目標(biāo),極大的提高了開發(fā)效率,同時(shí)降低了問題出現(xiàn)的可能性。
通過本方案的設(shè)計(jì),將整個(gè)列表頁面抽象成抽象業(yè)務(wù)部分和具體業(yè)務(wù)部分,每個(gè)部分各司其職完成相關(guān)的業(yè)務(wù)邏輯從而達(dá)到了一種列表模板的設(shè)計(jì)框架。后續(xù)開發(fā)新的列表頁的時(shí)候僅僅需要繼承該抽象列表頁模板父類,并實(shí)現(xiàn)抽象函數(shù),就能夠?qū)崿F(xiàn)所有列表頁的加載和數(shù)據(jù)訪問等邏輯。這樣極大的提高了程序的開發(fā)效率,并且后續(xù)如果需要修改部分列表頁面中邏輯的時(shí)候,僅僅需要修改底層的業(yè)務(wù)邏輯,這樣所有頂層的界面由于是繼承底層頁面的邏輯,所有的頂層頁面都能夠被修改,達(dá)到了修改一處能夠?qū)崿F(xiàn)全部頁面修改的目標(biāo),也極大的提升了程序的可維護(hù)性。
參見圖2,圖2提供了本發(fā)明另一個(gè)實(shí)施例的列表頁訪問和展示系統(tǒng),包括第一定義模塊21、第二定義模塊22以及調(diào)用和復(fù)寫模塊23。
第一定義模塊21,用于針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;
第二定義模塊22,用于定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;
調(diào)用和復(fù)寫模塊23,用于對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
參見圖3,其中,調(diào)用和復(fù)寫模塊23包括第一調(diào)用單元231和第二調(diào)用單元232,所述系統(tǒng)還包括獲取模塊24和接收模塊25。
第一調(diào)用單元231,用于在列表頁模板父類中調(diào)用列表屬性設(shè)置方法,對(duì)列表頁進(jìn)行屬性設(shè)置。
獲取模塊24,用于分別獲取列表頁子類通過復(fù)寫列表頁模板父類中的請(qǐng)求數(shù)據(jù)地址獲取方法向列表頁模板父類傳遞的請(qǐng)求數(shù)據(jù)地址,和通過復(fù)寫列表頁模板父類中的請(qǐng)求參數(shù)獲取方法向列表頁模板父類傳遞的請(qǐng)求參數(shù)。
第二調(diào)用單元232,用于根據(jù)請(qǐng)求數(shù)據(jù)地址和請(qǐng)求參數(shù),生成數(shù)據(jù)訪問請(qǐng)求,并調(diào)用發(fā)送數(shù)據(jù)請(qǐng)求方法向服務(wù)器發(fā)送所述數(shù)據(jù)訪問請(qǐng)求。
接收模塊25,用于接收服務(wù)器返回的數(shù)據(jù)結(jié)果,將數(shù)據(jù)結(jié)果以列表頁的形式進(jìn)行展示。
參見圖4,列表頁訪問和展示系統(tǒng)還包括存儲(chǔ)模塊26、判斷模塊27、監(jiān)聽模塊28和加載模塊29。
其中,存儲(chǔ)模塊26,用于當(dāng)接收模塊25接收到服務(wù)器返回的數(shù)據(jù)結(jié)果時(shí),將數(shù)據(jù)結(jié)果放入視圖容器中。
判斷模塊27,用于判斷視圖容器中的每一項(xiàng)數(shù)據(jù)結(jié)果的所屬類型。
監(jiān)聽模塊28,用于通過在客戶端中設(shè)置監(jiān)聽函數(shù)監(jiān)聽列表頁滑動(dòng)事件。
加載模塊29,用于根據(jù)每一項(xiàng)數(shù)據(jù)結(jié)果的所屬類型,采取相應(yīng)的布局將每一項(xiàng)數(shù)據(jù)結(jié)果在列表頁上進(jìn)行加載展示,以及還用于當(dāng)監(jiān)聽模塊28監(jiān)聽到列表頁滑動(dòng)事件,統(tǒng)計(jì)列表頁當(dāng)前已經(jīng)加載的數(shù)據(jù)項(xiàng)個(gè)數(shù),當(dāng)已經(jīng)加載的數(shù)據(jù)項(xiàng)個(gè)數(shù)達(dá)到預(yù)設(shè)的加載個(gè)數(shù),則再次向服務(wù)器發(fā)送數(shù)據(jù)訪問請(qǐng)求。
圖5示出本申請(qǐng)實(shí)施例的數(shù)據(jù)處理方法的設(shè)備的結(jié)構(gòu)框圖。
參照?qǐng)D5,數(shù)據(jù)處理方法的設(shè)備包括:處理器(processor)501、存儲(chǔ)器(memory)502和總線503;其中,所述處理器501和存儲(chǔ)器502通過所述總線503完成相互間的通信。
所述處理器501用于調(diào)用所述存儲(chǔ)器502中的程序指令,以執(zhí)行上述各方法實(shí)施例所提供的方法,例如包括:針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
本發(fā)明公開一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括程序指令,當(dāng)程序指令被計(jì)算機(jī)執(zhí)行時(shí),計(jì)算機(jī)能夠執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的列表頁訪問和展示方法,例如包括:針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
本發(fā)明還提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,該計(jì)算機(jī)指令使計(jì)算機(jī)執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的列表頁訪問和展示方法,例如包括:針對(duì)多個(gè)列表頁,定義抽象類型的列表頁模板父類,在所述列表頁模板父類中定義多個(gè)普通方法和多個(gè)抽象方法;定義每一個(gè)列表頁的列表頁子類,所述列表頁子類繼承所述列表頁模板父類;對(duì)于每一個(gè)列表頁相同的邏輯,調(diào)用所述列表頁模板父類中與所述邏輯對(duì)應(yīng)的普通方法,以及對(duì)于每一個(gè)列表頁不同的邏輯,通過在列表頁子類中復(fù)寫列表頁模板父類中與所述邏輯對(duì)應(yīng)的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁的訪問和展示。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所描述的列表頁的訪問和展示方法的設(shè)備等實(shí)施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分方法。
本發(fā)明提供的列表頁訪問和展示方法及其系統(tǒng),在設(shè)計(jì)客戶端的列表頁的模板時(shí),將列表頁模板父類定義為抽象類型,通過并在列表頁模板父類中定義普通方法和抽象方法,對(duì)于每一個(gè)不同的列表頁的實(shí)現(xiàn),為每一個(gè)列表頁定義一個(gè)列表頁子類,每一個(gè)列表頁子類繼承列表頁模板父類,通過調(diào)用列表模板類中的普通方法來實(shí)現(xiàn)每一個(gè)列表頁訪問和展示過程中的相同邏輯,而通過在每一個(gè)列表頁子類中復(fù)寫列表頁模板父類中定義的抽象方法來實(shí)現(xiàn)每一個(gè)列表頁訪問和展示過程中互不相同的邏輯,通過統(tǒng)一的業(yè)務(wù)邏輯的封裝和差異性業(yè)務(wù)邏輯的拆分來兼容客戶端中所有列表頁的處理邏輯。
最后,本申請(qǐng)的方法僅為較佳的實(shí)施方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。