一種基于改進型mvp模式的裝置的制造方法
【專利摘要】本發明實施例提供了一種基于改進型MVP模式的裝置,屬于計算機領域,包括:視圖模塊,用于顯示用戶交互界面和數據,以及根據用戶交互調用對應的命令對象;表示器模塊,用于維護一個或多個命令對象模塊,將所述一個或多個命令對象傳遞給所述視圖模塊以在用戶交互中調用,接收來自所述一個或多個命令對象模塊的結果,并根據所述結果控制所述視圖模塊;一個或多個命令對象模塊,用于執行與用戶交互關聯的任務或調用對應模型模塊來執行與用戶交互關聯的任務,以及向所述表示器模塊發送結果;以及一個或多個模型模塊,用于提供數據相關的操作。
【專利說明】
一種基于改進型MVP模式的裝置
技術領域
[0001 ]本發明涉及計算機領域,特別涉及一種基于改進型MVP模式的裝置。
【背景技術】
[0002] 目前人機交互一般米用MVP(Model-View-Presenter)模式,在該模式中,模型定義 了需要顯示的數據或數據操作方式,視圖用于顯示模型中的數據以及向表示器發送數據相 關的操作命令,而表示器作為中間人,協調視圖和模型之間的關系,并且處理應用邏輯。但 是,傳統的MVP模式存在一些不足,例如,表示器與視圖的關系過于緊密,表示器向視圖提供 一系列與視圖相關的操作以用于調用,如果接口中有一個接口方法發生更改,則可能會影 響到使用此接口的所有視圖和表示器,不利于代碼復用。
【發明內容】
[0003] 為了解決上述問題,本發明實施例提供了基于改進型MVP模式的裝置。
[0004] 根據本發明的第一方面,提供了一種基于改進型MVP模式的裝置,該裝置包括:
[0005] 視圖模塊,用于顯示用戶交互界面和數據,以及根據用戶交互調用對應的命令對 象;
[0006] 表不器模塊,用于維護一個或多個命令對象模塊,將所述一個或多個命令對象傳 遞給所述視圖模塊以在用戶交互中調用,接收來自所述一個或多個命令對象模塊的結果, 并根據所述結果控制所述視圖模塊;
[0007] -個或多個命令對象模塊,用于執行與用戶交互關聯的任務或調用對應模型模塊 來執行與用戶交互關聯的任務,以及向所述表示器模塊發送結果;以及
[0008] -個或多個模型模塊,用于提供數據相關的操作。
[0009] 結合本發明的第一方面,在第一種可能的實現方式中,所述裝置包括安卓系統中 的裝置。
[0010] 結合本發明的第一方面的第一種可能的實現方式,在第二種可能的實現方式中, 所述表示器模塊包括活動模塊,所述命令對象模塊包括動作對象模塊。
[0011] 結合本發明的第一方面,在第三種可能的實現方式中,所述數據相關的操作包括 數據的增加、查詢、刪除和修改中的至少一項。
[0012] 結合本發明的第一方面,在第四種可能的實現方式中,所述表示器模塊具體用于 根據所述結果控制所述視圖的用戶交互界面和/或數據的顯示。
[0013]通過采用基于改進型MVP模式的應用架構,可以提高系統的正交性,從而提高模塊 化程度和代碼的可復用性,以及應用的穩定性和可維護性。
【附圖說明】
[0014]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于 本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他 的附圖。
[0015] 圖1示出了根據本發明實施例的基于改進型MVP模式的裝置的示意圖;
[0016] 圖2示出了根據本發明實施例的安卓系統中基于改進型MVP模式的裝置的示意圖。
【具體實施方式】
[0017] 為使本發明的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附 圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本 發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在 沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0018] 本發明實施例提供了一種基于改進型MVP模式的裝置。通過在傳統的MVP模式中引 入命令(command)模式,將原本由表示器提供的操作接口封裝成一個或多個命令對象,并由 表示器來管理和維護這些命令對象。表示器將命令對象傳遞給對應的視圖(view),視圖在 界面上觸發操作時執行對應的命令對象,命令對象執行具體的任務或調用對應的模型 (model)執行具體的任務。表示器接收來自命令對象的結果,并根據該結果控制在視圖中的 數據的呈現。通過采用基于改進型MVP模式的應用架構,可以提高系統的正交性,從而提高 模塊化程度和代碼的可復用性,以及應用的穩定性和可維護性。
[0019] 圖1示出了根據本發明實施例的基于改進型MVP模式的裝置的示意圖。該裝置可包 括視圖模塊、表示器模塊、一個或多個命令對象模塊以及一個或多個模型模塊。如圖1中所 不,表不器模塊102用于管理一個或多個命令對象模塊106,并且將一個或多個命令對象模 塊106傳遞給視圖模塊104,以便在視圖模塊104中的用戶交互期間調用。此外,表示器模塊 102還用于接收來自一個或多個命令對象模塊106的結果,并根據接收的結果控制視圖模塊 104。具體的,表示器模塊102根據接收的結果控制視圖模塊104中的用戶交互界面和/或數 據的顯示。視圖模塊104用于顯示用戶交互界面和數據以及根據用戶交互調用對應的命令 對象模塊106。命令對象模塊106用于執行與用戶交互關聯的任務或調用對應的模型模塊 108來執行與用戶交互關聯的任務,并且將結果發送給表示器模塊102。模型模塊108用于提 供數據相關的操作。所述數據相關的操作可包括數據的增加、查詢、刪除和修改中的至少一 項。
[0020]圖2示出了根據本發明實施例的安卓系統中基于改進型MVP模式的裝置的示意圖。 在安卓系統中,表示器模塊可以包括活動(activity)模塊,命令對象模塊可以包括動作 (action)對象模塊,視圖模塊可以包括視圖(view)模塊,并且模型模塊可以包括模型 (model)模塊。如圖2所示,該裝置可包括視圖模塊、活動模塊、一個或多個動作對象模塊以 及一個或多個模型模塊。
[0021]視圖模塊用于顯示用戶交互界面和數據。具體的,視圖模塊可以采用各種形式呈 現數據,例如列表、按鈕、文本、圖片及其組合等。本發明實施例對視圖模塊的具體形式不加 以限定。視圖模塊還可用于顯示各種類型的用戶交互界面,例如登錄界面和搜索界面等。具 體的,視圖模塊可實現與界面相關的功能,例如界面顯示、滑動、按鈕事件、輸入框的內容是 否為空的檢查等。視圖模塊可提供86七乂乂4〇1:;[011(]^〇1:;[011)和86七乂乂03七3(03七3)系列方法,使 得外部可以通過setXXData(Data)將具體數據傳遞給視圖模塊,并且可以通過setXXAction (IAction)來設置界面中的用戶交互觸發的事件。例如,活動模塊可以通過調用 setXXAction(IAction)來設置視圖模塊中與用戶交互界面中的一個或多個用戶交互事件 所對應的一個或多個動作。
[0022]動作是對特定命令的封裝。每一個動作對象模塊可實現IAction接口。可以采用以 下兩種方案來定義該接口:
[0023]方案一:
[0024] IAction接口可定義為:
[0025] public interface IAction{
[0026] public void execute();
[0027] }
[0028] 基類BaseAction可定義為:
[0029]
[0030]
[0031] 在創建具體的動作類之前,還需要定義和具體動作對應的動作接口。例如要執行 按鈕事件,可先定義一個ButtonCl ickAct ion接口:
[0032] public interface ButtonClickAction extends IAction{
[0033] public void setParamter(String buttonName);
[0034] }
[0035] 在ButtonClickAction接口中定義了具體的參數類型和個數。
[0036] 然后可創建一個具體的LeaderlnfoButtonCl ickAction 類,繼承自 BaseAction 并 實現ButtonCl ickAction接口。
[0037] 在視圖模塊中需要接受ButtonCl ickAction類型的動作對象模塊,并且視圖模塊 傳遞參數給動作對象模塊以執行命令。
[0038] 方案一的優點是可以明確地定義傳遞參數的類型和個數。
[0039] 方案二:
[0040] IAction 接口定義為:
[0041] public interface IAction{
[0042] public void execute(Map<String,0bject>params);
[0046]
[0043] }[0044] 在IAction的execute中用Map來封裝傳入的參數。[0045] 基類 BaseAction:
[0047]
[0048] 創建具體的動作類時,只需要簡單地繼承BaseAction,實現execute方法。在視圖 模塊中只接受IAct ion類型的動作對象模塊。
[0049] 方案二的優點是提供較高程度的抽象,實現較為簡單,更改接口參數對視圖影響 小,保證了視圖和動作更高程度的可復用性。
[0050] 動作對象模塊可執行與用戶交互關聯的任務,或者調用模型模塊來執行與用戶交 互關聯的任務。在動作對象模塊執行完任務后,將結果發送給活動模塊。
[0051] 活動模塊用于將具體的動作對象模塊傳遞給視圖。具體的,活動可通過 setXXAction( IAction)來將一個或多個動作對象模塊傳遞給視圖模塊,以便視圖模塊在用 戶交互中調用。此外,活動模塊還注冊有BroadcastReceiver,以此來接收動作模塊完成任 務后發來的結果。隨后,活動模塊可在BroadcastReceiver中處理該結果,并反饋到視圖模 塊上。具體的,活動模塊可根據結果來控制視圖模塊中的用戶交互界面和/或數據的顯示。 例如,活動模塊可以通過setXXData(Data)將結果作為數據發送給視圖模塊。
[0052] 注冊BroadcastReceiver可以采取動態注冊或靜態注冊。采用動態注冊時,可以在 onResume方法中注冊。采用靜態注冊時,可以在AndroidManifest文件中注冊。注冊時可指 定動作,使得只有匹配動作的廣播消息才會被接收。本發明實施例對BroadcastReceiver的 具體注冊方法不加以限定。
[0053]模型模塊用于提供數據相關的操作,例如一些底層的網絡和數據庫操作等,以此 來完成數據的增加、查詢、刪除和修改等操作中的至少一項操作。
[0054]通過在安卓系統中采用基于改進型MVP模式的裝置,可以提高系統的正交性,從而 提高模塊化程度和代碼的可復用性,以及應用的穩定性和可維護性。要說明的是,安卓系統 僅是示例,本發明實施例公開的基于改進型MVP模型的裝置也可適用于其他系統,例如iOS 系統,WinPhone系統等,本發明實施例對此不加以限定。
[0055]上述所有可選技術方案,可以采用任意結合形成本發明的可選實施例,在此不再 --贅述。
[0056] 本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件 來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀 存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
[0057] 以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和 原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【主權項】
1. 一種基于改進型MVP模式的裝置,其特征在于,所述裝置包括: 視圖模塊,用于顯示用戶交互界面和數據,以及根據用戶交互調用對應的命令對象; 表示器模塊,用于維護一個或多個命令對象模塊,將所述一個或多個命令對象傳遞給 所述視圖模塊以在用戶交互中調用,接收來自所述一個或多個命令對象模塊的結果,并根 據所述結果控制所述視圖模塊; 一個或多個命令對象模塊,用于執行與用戶交互關聯的任務或調用對應模型模塊來執 行與用戶交互關聯的任務,以及向所述表示器模塊發送結果;以及一個或多個模型模塊,用 于提供數據相關的操作。2. 根據權利要求1所述的裝置,其特征在于,所述裝置包括安卓系統中的裝置。3. 根據權利要求2所述的裝置,其特征在于,所述表示器模塊包括活動模塊,所述命令 對象模塊包括動作對象模塊。4. 根據權利要求1所述的裝置,其特征在于,所述數據相關的操作包括數據的增加、查 詢、刪除和修改中的至少一項。5. 根據權利要求1所述的裝置,其特征在于,所述表示器模塊具體用于根據所述結果控 制所述視圖的用戶交互界面和/或數據的顯示。
【文檔編號】G06F9/44GK105975265SQ201610284250
【公開日】2016年9月28日
【申請日】2016年4月29日
【發明人】王星
【申請人】掌贏信息科技(上海)有限公司