專利名稱:一種復用列表頁的方法和裝置的制作方法
技術領域:
本發明涉及即時通信領域,特別涉及一種復用列表頁的方法和裝置。
背景技術:
網絡即時通訊工具發展迅速,用戶無論在生活還是工作,都大量的使用 IMdnstant Messaging,即時通訊)軟件,與朋友,同事以及同學進行交流與溝通,IM軟件目前已經成為人們工作生活中必不可少的軟件工具之一。在即時通訊客戶端,如微博客戶端,需要展現的信息越來越豐富,如搜索結果頁、 收聽人列表頁、黑名單列表頁等列表頁。現有的微博客戶端產品中,對于每一個列表頁分別對應自己獨立的實現類,界面展示和邏輯處理都在自己獨立的實現類加以實現。但是,很多列表頁具有相似的界面展示或邏輯處理,如果仍然分別寫在自己獨立的實現類中,勢必會帶來代碼邏輯的冗余,難以開發和維護。
發明內容
為了避免列表頁代碼邏輯產生冗余,降低開發和維護的難度,本發明實施例提供了 一種復用列表頁的方法和裝置。所述技術方案如下—種復用列表頁的方法,所述方法包括創建管理類,用于控制各個子控件類;當欲創建一個子控件類時,判斷所述管理類中是否存在與所述欲創建子控件類樣式相同的子控件類;如果存在,根據所述欲創建子控件類樣式相同的子控件類,生成相應的列表頁。進一步的,所述根據所述欲創建子控件類樣式相同的子控件類,生成相應的列表頁包括管理類拉取異步信息,并將所述異步信息填充到與所述欲創建子控件類樣式相同的子控件類;通過委托類通知所述子控件類的父控件進行界面刷新和排布操作,以組裝成相應的列表頁。進一步的,所述管理類拉取異步信息包括管理類從消息池中拉取異步消息,所述消息池中保存一份所述異步消息,并根據引用所述異步消息的列表頁的數量,增加所述異步消息的引用計數,如果沒有引用所述異步消息的列表頁,釋放保存所述異步消息的資源。進一步的,所述判斷所述管理類中是否存在與所述欲創建子控件類樣式相同的子控件類之后包括如果不存在,根據所述欲創建子控件類應用的不同列表頁的界面形式,創建所述欲創建子控件類。
進一步的,所述根據所述欲創建子控件類應用的不同列表頁的界面形式,創建所述欲創建子控件類包括將所述不同列表頁的界面元素進行歸納,將所述不同列表頁中相同的界面元素作為所述欲創建子控件類中的一個界面元素,將所述不同列表頁中不同的界面元素作為所述欲創建子控件類中不同的界面元素。一種復用列表頁的裝置,所述裝置包括創建模塊,用于創建管理類,用于控制各個子控件類;判斷模塊,用于當欲創建一個子控件類時,判斷所述管理類中是否存在與所述欲創建子控件類樣式相同的子控件類;生成模塊,用于如果存在,根據所述欲創建子控件類樣式相同的子控件類,生成相應的列表頁。進一步的,所述生成模塊包括拉取單元,用于管理類拉取異步信息;填充單元,用于將所述異步信息填充到與所述欲創建子控件類樣式相同的子控件類;通知單元,用于通過委托類通知所述子控件類的父控件進行界面刷新和排布操作,以組裝成相應的列表頁。進一步的,所述拉取單元,具體用于管理類從消息池中拉取異步消息,所述消息池中保存一份所述異步消息,并根據引用所述異步消息的列表頁的數量,增加所述異步消息的引用計數,如果沒有引用所述異步消息的列表頁,釋放保存所述異步消息的資源。進一步的,所述裝置還包括第二創建模塊,用于執行所述判斷模塊之后,如果不存在,根據所述欲創建子控件類應用的不同列表頁的界面形式,創建所述欲創建子控件類。進一步的,所述第二創建模塊,具體用于將所述不同列表頁的界面元素進行歸納,將所述不同列表頁中相同的界面元素作為所述欲創建子控件類中的一個界面元素,將所述不同列表頁中不同的界面元素作為所述欲創建子控件類中不同的界面元素。本發明實施例提供的技術方案帶來的有益效果是通過創建用于控制各個子控件類的管理類,當欲創建一個子控件類時,判斷管理類中是否存在與欲創建子控件類樣式相同的子控件類,如果存在,根據該欲創建子控件類樣式相同的子控件類,生成相應的列表頁,這種復用列表頁代碼邏輯的方案,避免了列表頁代碼邏輯產生冗余,降低了開發和維護的難度。
圖1是本發明實施例1中提供的復用列表頁的方法流程圖;圖2是本發明實施例1中提供的復用列表頁的另一方法流程圖;圖3是本發明實施例1中提供的類的邏輯關系示意圖;圖4是本發明實施例1中提供的列表頁1的界面展示示意圖5是本發明實施例1中提供的列表頁2的界面展示示意圖;圖6是本發明實施例1中提供的欲創建子控件類界面元素示意圖;圖7是本發明實施例2中提供的復用列表頁的裝置結構示意圖;圖8是本發明實施例2中提供的復用列表頁的另一裝置結構示意圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。實施例1參見圖1,本實施例提供了一種復用列表頁的方法,包括101 創建管理類,用于控制各個子控件類;102:當欲創建一個子控件類時,判斷該管理類中是否存在與該欲創建子控件類樣式相同的子控件類;103:如果存在,根據該欲創建子控件類樣式相同的子控件類,生成相應的列表頁。本實施例通過創建用于控制各個子控件類的管理類,當欲創建一個子控件類時, 判斷管理類中是否存在與欲創建子控件類樣式相同的子控件類,如果存在,根據該欲創建子控件類樣式相同的子控件類,生成相應的列表頁,這種復用列表頁代碼邏輯的方案,避免了列表頁代碼邏輯產生冗余,降低了開發和維護的難度。實施例提供的復用列表頁的方法,適用于微博終端,例如微博客戶端等。參見圖2, 下面結合具體實例詳細介紹復用列表頁的方法。201 創建管理類,用于控制各個子控件類;所謂控制,是指管理類負責拉取子控件類需要顯示的信息,并且負責管理子控件的生命周期。其中,管理類也稱為抽離列表控件管理類,設為UserltemMgr。根據子控件類的樣式或數量,可以創建一個或多個管理類。當子控件類數量較少時,可以只創建一個管理類, 對所有子控件類進行集中控制。當子控件類的樣式或數量較多時,可以創建多個管理類,分別控制相應的子控件類。其中,子控件類也稱為抽離列表用戶子控件類,設為UserltemCtrl,專門用于處理列表頁中每一個子控件的界面表現邏輯。所有的子控件類組成容器池。202:當欲創建一個子控件類時,判斷該管理類中是否存在與該欲創建子控件類樣式相同的子控件類;203:如果存在,根據該欲創建子控件類樣式相同的子控件類,生成相應的列表頁;具體的,管理類拉取異步信息,并將該異步信息填充到與該欲創建子控件類樣式相同的子控件類;通過委托類通知該子控件類的父控件進行界面刷新和排布操作,以組裝成相應的列表頁。進一步的,當異步信息為異步消息時,管理類拉取異步信息包括管理類從消息池中拉取異步消息,該消息池中保存一份該異步消息,并根據引用該異步消息的列表頁的數量,增加該異步消息的引用計數,如果沒有引用該異步消息的列
6表頁,釋放保存該異步消息的資源。本實施例提供的消息池可以有效降低內存消耗。其中,委托類也稱為抽離回調列表父控件委托類接口,設為IPageltemContainer, 其為管理類的成員變量,用于取得父控件的指針。委托類、管理類和子控件類的邏輯關系參見圖3所示。父控件有兩種方式實現委托類,第一種通過包含IPageltemContainer的委托類實例變量;第二種是繼承IPageltemContainer接口函數;兩者都是在初始化的時候將自身傳給^erItemMgr用于相應的回調操作。其中,異步信息具體為廣播消息、個人標簽信息或頭像等,異步信息本地并不存在,需要觸發一次與服務器的異步加載過程。204:如果不存在,根據該欲創建子控件類應用的不同列表頁的界面形式,創建該欲創建子控件類;具體的,將該不同列表頁的界面元素進行歸納,將該不同列表頁中相同的界面元素作為該欲創建子控件類中的一個界面元素,將該不同列表頁中不同的界面元素作為該欲創建子控件類中不同的界面元素。例如,圖4為列表頁1的界面展示示意圖,包括頭像、昵稱、操作區域、賬號I地理、微博消息和富媒體,圖5為列表頁2的界面展示示意圖,包括頭像、昵稱、操作區域、賬號I地理、微博消息和消息來源,其中,頭像、昵稱、操作區域、賬號I地理和微博消息為兩個列表頁相同的界面元素,則欲創建子控件類中分別包括一個頭像、昵稱、操作區域和微博消息,富媒體和消息來源為不同的界面元素,單獨作為欲創建子控件類中的一個界面元素,參見圖6所示的欲創建子控件類界面元素示意圖。本實施例通過創建用于管理各個子控件類的管理類,當欲創建一個子控件類時, 判斷管理類中是否存在與欲創建子控件類樣式相同的子控件類,如果存在,根據該欲創建子控件類樣式相同的子控件類,生成相應的列表頁,這種復用列表頁代碼邏輯的方案,避免了列表頁代碼邏輯產生冗余,降低了開發和維護的難度。實施例2參見圖7,本實施例提供了一種復用列表頁的裝置,包括創建模塊301,用于創建管理類,用于控制各個子控件類;判斷模塊302,用于當欲創建一個子控件類時,判斷管理類中是否存在與欲創建子控件類樣式相同的子控件類;生成模塊303,用于如果存在,根據欲創建子控件類樣式相同的子控件類,生成相應的列表頁。其中,生成模塊303包括拉取單元303a,用于管理類拉取異步信息;填充單元30北,用于將異步信息填充到與欲創建子控件類樣式相同的子控件類;通知單元303c,用于通過委托類通知子控件類的父控件進行界面刷新和排布操作,以組裝成相應的列表頁。其中,拉取單元303a,具體用于管理類從消息池中拉取異步消息,消息池中保存一份異步消息,并根據引用異步消息的列表頁的數量,增加異步消息的引用計數,如果沒有引用異步消息的列表頁,釋放保存異步消息的資源。本實施例提供的消息池可以有效降低內存消耗。
進一步的,參見圖8,該裝置還包括第二創建模塊304,用于執行判斷模塊302之后,如果不存在,根據欲創建子控件類應用的不同列表頁的界面形式,創建欲創建子控件類。其中,第二創建模塊304,具體用于將不同列表頁的界面元素進行歸納,將不同列表頁中相同的界面元素作為欲創建子控件類中的一個界面元素,將不同列表頁中不同的界面元素作為欲創建子控件類中不同的界面元素。本實施例提供的裝置具體可以是微博終端,例如微博客戶端等,與方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。本實施例通過創建用于控制各個子控件類的管理類,當欲創建一個子控件類時, 判斷管理類中是否存在與欲創建子控件類樣式相同的子控件類,如果存在,根據該欲創建子控件類樣式相同的子控件類,生成相應的列表頁,這種復用列表頁代碼邏輯的方案,避免了列表頁代碼邏輯產生冗余,降低了開發和維護的難度。以上實施例提供的技術方案中的全部或部分內容可以通過軟件編程實現,其軟件程序存儲在可讀取的存儲介質中,存儲介質例如計算機中的硬盤、光盤或軟盤。以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種復用列表頁的方法,其特征在于,所述方法包括創建管理類,用于控制各個子控件類;當欲創建一個子控件類時,判斷所述管理類中是否存在與所述欲創建子控件類樣式相同的子控件類;如果存在,根據所述欲創建子控件類樣式相同的子控件類,生成相應的列表頁。
2.根據權利要求1所述的方法,其特征在于,所述根據所述欲創建子控件類樣式相同的子控件類,生成相應的列表頁包括管理類拉取異步信息,并將所述異步信息填充到與所述欲創建子控件類樣式相同的子控件類;通過委托類通知所述子控件類的父控件進行界面刷新和排布操作,以組裝成相應的列表頁。
3.根據權利要求2所述的方法,其特征在于,所述管理類拉取異步信息包括管理類從消息池中拉取異步消息,所述消息池中保存一份所述異步消息,并根據引用所述異步消息的列表頁的數量,增加所述異步消息的引用計數,如果沒有引用所述異步消息的列表頁,釋放保存所述異步消息的資源。
4.根據權利要求1所述的方法,其特征在于,所述判斷所述管理類中是否存在與所述欲創建子控件類樣式相同的子控件類之后包括如果不存在,根據所述欲創建子控件類應用的不同列表頁的界面形式,創建所述欲創建子控件類。
5.根據權利要求4所述的方法,其特征在于,所述根據所述欲創建子控件類應用的不同列表頁的界面形式,創建所述欲創建子控件類包括將所述不同列表頁的界面元素進行歸納,將所述不同列表頁中相同的界面元素作為所述欲創建子控件類中的一個界面元素,將所述不同列表頁中不同的界面元素作為所述欲創建子控件類中不同的界面元素。
6.一種復用列表頁的裝置,其特征在于,所述裝置包括創建模塊,用于創建管理類,用于控制各個子控件類;判斷模塊,用于當欲創建一個子控件類時,判斷所述管理類中是否存在與所述欲創建子控件類樣式相同的子控件類;生成模塊,用于如果存在,根據所述欲創建子控件類樣式相同的子控件類,生成相應的列表頁。
7.根據權利要求6所述的裝置,其特征在于,所述生成模塊包括拉取單元,用于管理類拉取異步信息;填充單元,用于將所述異步信息填充到與所述欲創建子控件類樣式相同的子控件類;通知單元,用于通過委托類通知所述子控件類的父控件進行界面刷新和排布操作,以組裝成相應的列表頁。
8.根據權利要求7所述的裝置,其特征在于,所述拉取單元,具體用于管理類從消息池中拉取異步消息,所述消息池中保存一份所述異步消息,并根據引用所述異步消息的列表頁的數量,增加所述異步消息的引用計數,如果沒有引用所述異步消息的列表頁,釋放保存所述異步消息的資源。
9.根據權利要求6所述的裝置,其特征在于,所述裝置還包括第二創建模塊,用于執行所述判斷模塊之后,如果不存在,根據所述欲創建子控件類應用的不同列表頁的界面形式,創建所述欲創建子控件類。
10.根據權利要求9所述的裝置,其特征在于,所述第二創建模塊,具體用于將所述不同列表頁的界面元素進行歸納,將所述不同列表頁中相同的界面元素作為所述欲創建子控件類中的一個界面元素,將所述不同列表頁中不同的界面元素作為所述欲創建子控件類中不同的界面元素。
全文摘要
本發明公開了一種復用列表頁的方法和裝置,屬于即時通信領域。所述方法包括創建管理類,用于控制各個子控件類;當欲創建一個子控件類時,判斷所述管理類中是否存在與所述欲創建子控件類樣式相同的子控件類;如果存在,根據所述欲創建子控件類樣式相同的子控件類,生成相應的列表頁。所述裝置包括創建、判斷和生成模塊。本發明通過創建用于控制各個子控件類的管理類,當欲創建一個子控件類時,判斷管理類中是否存在與欲創建子控件類樣式相同的子控件類,如果存在,根據該欲創建子控件類樣式相同的子控件類,生成相應的列表頁,這種復用列表頁代碼邏輯的方案,避免了列表頁代碼邏輯產生冗余,降低了開發和維護的難度。
文檔編號H04L12/58GK102487361SQ201010582289
公開日2012年6月6日 申請日期2010年12月3日 優先權日2010年12月3日
發明者庫宇 申請人:騰訊科技(深圳)有限公司