在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何把MVC設計模式應用到J2ME程序設計中

牽手一起夢 ? 來源:單片機與嵌入式系統應用 ? 作者:姜帆,羅蕾 ? 2020-10-04 17:41 ? 次閱讀

1 J2ME應用程序框架的現狀

Sun公司在1999年6月推出了J2ME(Java 2 MicroEdition,Java 2袖珍版)。J2ME是專門為那些使用有限電源、有限網絡連接以及有限圖形用戶界面能力的設備開發的,滿足了消費電子嵌入式設備開發的需要。

而7年后的今天,消費電子和嵌入式設備發展迅速。硬件設備速度越來越快,存儲容量也越來越大,這也就自然帶動了軟件的發展。MIDP 2.0和CLDC 1.1也相繼問世,各種各樣的JSR也層出不窮。

硬件平臺和軟件平臺的飛速發展自然帶動了人們需求的增長,也就使得現在的應用程序越來越復雜。以手機游戲為例:以前的手機游戲,一般代碼必須限制在64 KB以內;而現在,大部分手機的這種限制已經取消。上百KB的游戲已很常見,甚至有的J2ME游戲已經超過2 MB。

通常來說,J2ME程序都是比較小的,多數在100 KB以下。而且其中大部分是圖片和聲音,代碼只占其中很少一部分。在J2ME程序比較小時,為了提高程序的執行效率,通常的做法是只用一個類完成整個應用程序,在回調函數commandAction()中完成所有界面切換的工作。例如:

這種模式的好處在于代碼量最小,能得到最小的jar包尺寸,執行起來效率也最高;而且,因為所有界面都在同一個類中,它們可以很方便地共享數據。

但如果界面很多,程序很大,這種模式就體現出它的劣勢了。一方面,幾千行的代碼集中在一個類里,調試和維護非常不方便。另一方面,由于很多界面都在同一個類中共享數據,使得它們的耦合度大大提高。如果要替換或修改其中某個界面,很可能會影響到其他界面。這就給開發程序帶來了很大的不便。

隨著嵌入式硬件的發展,J2ME軟件的復雜度也越來越大,上述設計模式已不能適應嵌入式發展的需求。這就需要一個更好的設計模式來取代以前的簡單設計模式。下面就介紹一下如何把MVC設計模式應用到J2ME程序設計中。

2 MVC模式的簡介

MVC由Trygve Reenskaug提出,首先被應用在SmallTalk-80環境中,是許多交互和界面系統的構成基礎,Microsoft的MFC基礎類也遵循了MVC的思想。目前這種模式已經非常成熟,并在WEB Application的開發中廣泛使用,apache的開源項目struts就是典型的例子。

MVC的英文全稱是Model-View-Controller,即把一個應用的輸入、處理、輸出流程按照Model、View、Con-troller的方式進行分離。這樣一個應用被分成3個層——模型層、視圖層和控制層。

模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數據,那么所有其他依賴于這些數據的視圖都應反映出這些變化。因此,無論何時發生了何種數據變化,控制器都會將變化通知所有的視圖,實現顯示的更新。這實際上是一種模型的變化一傳播機制。模型、視圖、控制器三者之間的關系和各自的主要功能如圖1所示。

3 基于MVC模式的J2ME應用程序框架

MVC是一種很好的客戶端軟件設計模式,但目前一般只用于PC上。以JAVA為例,目前已經可以看到MVC大量地應用在J2EE和J2SE上,可是幾乎還很少見到在J2ME上使用MVC模式。這是為什么呢?有以下兩點原因:

① 大部分的J2ME應用都很簡單,開發周期也很短,很多開發人員偏愛把所有代碼寫在一個類中,認為沒有必要使用復雜的設計模式;

② 使用MVC模式在某種程度上會增大代碼的體積,并且有可能在一定程度上影響程序的執行效率,這在資源相對有限的J2ME系統上是一個不可忽視的問題。

可是隨著嵌入式硬件的發展,移動設備的性能有了很大的提高,從而帶動了應用軟件的發展。J2ME應用軟件變得越來越復雜,如果還像以前那樣使用一個類來完成所有的代碼,必將使得程序可讀性差、擴展性差、可維護性差。然而,如果把MVC模式應用在J2ME應用程序設計中,就可以解決以上的問題。下面列舉并分析幾種在J2ME中比較適合的MVC模式。

3.1 單一控制器的MVC模式

MVC模式是大家都比較熟悉的,整個程序中使用同一個Controller來控制界面的切換和事件的處理等,如圖2所示。

在J2ME應用程序中,界面的切換是比較常見的操作,利用這種單一控制器的MVC模式,可以很容易地實現界面的切換,如圖3所示。

由于界面切換流程都在這個Controller中進行管理,所以程序流程制定得非常清晰。但是由于只有一個控制器,所以如果界面很多、很復雜,就會使得這個控制器十分龐大,影響到開發效率。

3.2 多個控制器的MVC模式

當應用程序界面很多時,可以改變這種情況使用多個控制器的MVC模式,如圖4所示。

在這種模式下,按照程序模塊把界面分成若干個部分,每個部分使用一個控制器來控制。這樣做的好處是程序模塊劃分得很清楚,程序結構更加清晰,也不至于使得一個控制器過于龐大;缺點是程序的類數量更多,控制器之前增加了通信開銷。

3.3 簡化的MV模式

上面的兩種程序設計模式已經很常見于PC上的應用軟件設計,包括WEB應用或J2EE中的設計。但是通常來說,由于基于移動設備的J2ME應用軟件復雜程度相對PC上的要低許多,有時候本來就只有幾個類,如果完全照搬PC上的MVC模式,反而會使程序框架變得更加復雜。這時,可以采用以下的一種變形:MV模式(或稱為MC-V或M-VC模式),如圖5所示。

在這種模式中,由于去掉了控制器,于是把控制器的功能合并到View或Model中。如果把Controller合并到View中,則可稱其為M-VC模式;如果把Controller合并到Model中,則可稱其為MC-V模式。

3.4 更加簡化的V模式

如果認為上面這種簡化的MV模式還是過于復雜,那么可以考慮下面的V模式,如圖6所示。

在這種模式中,已經完全省略了Model和Controller,只剩下View了。界面的切換和數據的處理都在各個界面的View中獨立完成。這樣使得類的數量極大地減少,程序執行效率有一定的提高,可是從另一個方面來說,程序的耦合度也增大了。所以,一般來說并不推薦使用這種模式,只有在程序十分簡單、數據量很小時才使用。

4 MVC模式應用在J2ME上的優缺點

MVC模式作為一種已成熟應用在PC客戶端的設計模式,其優點是不言而喻的。這些優點同樣也在J2ME上得到了很好的體現:

① MVC最大的優點就在于它把一個應用分成了3層,這樣程序設計的靈活性就大大增加了。例如,一個應用的業務流程或者業務規則的改變只須改動MVC的模型層,而界面表現方式的改變則只須改動MVC的視圖層。

② 將MVC分離可以讓不同的專家負責不同的模塊。一般情況下,M部分由熟悉數據庫、網絡傳輸的專家負責;V部分則交給對UI有研究的專家。分工意味著可以提高效率并可以按照傳統的責任劃分來處理軟件開發過程,使開發者可以專心于一個領域,從而極大地提高了軟件開發的效率。

③ 模型的部分,因為足夠抽象,可以方便地重復利用,符合OO的思想。另一方面可以利用J2meUnit等單元測試工具對模型進行單元測試,以保證工程質量。

然而MVC模式也存在著一些缺點,而這些缺點在J2ME應用上體現得更加明顯:

① MVC模式應用于J2ME上的最大缺點莫過于增大了代碼體積。據不完全統計,使用了MVC模式后,代碼體積約是不使用MVC的1.5倍。這對PC上的客戶端軟件來說可能不算什么,可是對于存儲容量十分有限的移動設備則是致命的。

② 模型、視圖與控制器分離,它們之間傳遞數據時會耗費一定的系統時間,這或多或少會降低程序的運行效率。而程序體積的膨脹也使得J2ME在裝載類時會耗費更多的時間,也從一定程度上損害了程序的性能。

③ MVC的3個部件定義并不具體,對于3個部件的具體功能還存在著一些爭議。這給初學者留下不少的陷阱,加大了使用MVC模式的難度。

結 語

綜上所述,當J2ME應用程序比較龐大時,將MVC設計模式應用于程序的框架設計是一個不錯的選擇;而當應用程序比較簡單時,MVC模式的缺點就暴露出來了,這時可以考慮使用MVC的簡化模式——MV模式,甚至是V模式。目前,筆者已將MVC模式應用于J2ME手機播客軟件中,取得了良好的效果。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 手機
    +關注

    關注

    35

    文章

    6908

    瀏覽量

    158450
  • 控制器
    +關注

    關注

    112

    文章

    16487

    瀏覽量

    179764
  • 應用程序
    +關注

    關注

    38

    文章

    3299

    瀏覽量

    57982
收藏 人收藏

    評論

    相關推薦

    J2EE、J2SE、J2ME之間的關系

    。在這里JAVA私塾 Java 各版本之間的關系簡單介紹一下。 Java 分成三種版本,分別是 Java 標準版(J2SE)、Java 微縮版(J2ME)和 Java 企業版
    發表于 10-29 11:59

    JAVAJDK、J2EE、J2SE、J2ME的概念詳解

    免費的J2ME Wireless Toolkit。Java Card技術用來開發可以植入IC智能卡的應用程序。以上四種平臺的軟件開發包(Software Development Kit,SDK)都是
    發表于 07-10 08:28

    J2ME開發環境如何搭建

    和仿真器一起使用。最后,我們來看一看如何下載和安裝 J2ME 無線工具包,該工具包可用來開發 MIDP 設備的 J2ME 應用程序
    發表于 07-16 07:32

    基于J2ME平臺的SOAP協議研究與應用

    本文對于在J2ME 平臺下,利用XML 解析器開發SOAP 協議的基本方法進行了研究,介紹了J2ME 平臺和SOAP 協議,其中重點探討了XML 的開發,提出了一種利用XML解析器在J2ME 平臺上實現SOAP 協
    發表于 05-25 13:47 ?17次下載

    基于J2MEJ2EE的新農合系統設計與實現

    結合J2MEJ2EE 技術,提出了新農合系統的解決方案。介紹了J2MEJ2EE 體系結構之后,闡述了新農合系統的整體架構和實現方案,并討論了該系統的安全性設計。關鍵詞:
    發表于 08-13 14:46 ?14次下載

    基于J2ME的防汛信息系統的研究

    J2ME是Sun公司為了Java應用于移動信息設備、嵌入式設備或消費性電器而推出的一項技術,它和J2EE技術相結合為防汛信息系統提供了很好的解決方案。本文闡述了一個基于J2ME
    發表于 09-01 11:28 ?28次下載

    運用J2ME與Servlet技術的手機程序開發研究

    隨著手機等移動業務的普適增長和其終端設備技術的不斷升級,J2ME(java 2 Platform Micro Edition)以及J2EE(java 2 Platform Enterp
    發表于 09-03 16:14 ?12次下載

    基于J2ME的金融POS應用安全方案設計

    基于J2ME的金融POS應用安全方案設計:傳統金融POS 作為一種嵌入式設備,在符合PCI POS-PED 安全標準上面臨困難。J2ME 是適合于嵌入式設備的Java 平臺,在此基礎上擴展POS 應用基礎類庫實
    發表于 12-19 14:53 ?14次下載

    基于J2ME/J2EE的JSON數據交換的探討

    分析JSON數據交換格式,并提出在客戶端(J2ME)與服務器端(J2EE)之間采用JSON數據交換格式的框架。對于輕量級應用,該框架可節省客戶端的計算資源,提高網絡傳輸速度。
    發表于 12-30 16:10 ?0次下載

    基于J2ME的無線網絡應用開發

    J2ME是SUN公司提出的基于消費類電子設備的嵌入式開發技術,它將為新一代無線Internet提供交互式的、可移植的、部署靈活的、安全的應用。J2ME省略了WAP網關,直接通過HTTP或Socket
    發表于 10-29 11:10 ?0次下載
    基于<b class='flag-5'>J2ME</b>的無線網絡應用開發

    基于J2ME的無線網絡應用開發研究

    J2ME是SUN公司提出的基于消費類電子設備的嵌入式開發技術,它將為新一代無線Internet提供交互式的、可移植的、部署靈活的、安全的應用。J2ME省略了WAP網關,直接通過HTTP或Socket
    發表于 10-31 10:47 ?1次下載
    基于<b class='flag-5'>J2ME</b>的無線網絡應用開發研究

    基于J2ME的無線網絡應用開發

    J2ME是SUN公司提出的基于消費類電子設備的嵌入式開發技術,它將為新一代無線Internet提供交互式的、可移植的、部署靈活的、安全的應用。J2ME省略了WAP網關,直接通過HTTP或Socket
    發表于 12-01 12:00 ?403次閱讀
     基于<b class='flag-5'>J2ME</b>的無線網絡應用開發

    采用J2ME技術的手機地圖服務系統設計

    J2ME(Java 2 Plat form Micro Edition,) 是為無線電子市場所設計的又被稱為Java 2 微型版,是Java 2 標準中專門針對小型移動設備的一個版本。
    的頭像 發表于 11-09 08:19 ?2061次閱讀
    采用<b class='flag-5'>J2ME</b>技術的手機地圖服務系統設計

    Java程序設計之網絡編程J2ME的詳細資料概述

    J2ME是JAVA2的微型版本,只支持JAVA標準規范中所定義的核心類函數庫的子集。 J2ME定位于嵌入式系統的應用上J2ME是JAVA2
    發表于 02-26 14:14 ?3次下載
    Java<b class='flag-5'>程序設計</b>之網絡編程<b class='flag-5'>J2ME</b>的詳細資料概述

    基于JAVA的J2ME的手機游戲(貪吃蛇)開發設計

    隨著通信技術的發展和手機的普及,手機游戲的開發技術越來越為人們所關注。以J2ME為開發平臺,利用Java提供強大工具,不但可以在手機上實現靜態HTML技術所無法實現的計算處理、數據存儲、與服務器
    發表于 06-09 16:04 ?0次下載
    主站蜘蛛池模板: 国产精品国产主播在线观看 | 2019国产情侣 | 黄网页在线观看 | 欧美综合视频 | 久久国产精品99久久久久久牛牛 | 四虎在线免费播放 | 四虎影视在线影院在线观看 | 久久久婷婷 | 99久久免费精品国产免费高清 | 日本毛片在线观看 | 欧美精品一区视频 | 久久久噜噜噜www成人网 | 一级黄色日本 | 日本不卡在线视频 | 高清激情小视频在线观看 | 国产三级日本三级在线播放 | 三级毛片在线免费观看 | 一级毛片一级毛片一级毛片 | 免费无遮挡很爽很污很黄 | 丝袜美腿视频一区二区三区 | 69xxxxtube日本免费 | 四虎最新免费观看网址 | 亚洲成人综合网站 | tom影院亚洲国产一区二区 | 欧美一区二区高清 | 精品久草| 九九热精品视频 | 黄到让你下面湿的视频 | 18女毛片| 亚洲男人a天堂在线2184 | 精品三级三级三级三级三级 | 亚洲色图图片 | 日韩特黄特色大片免费视频 | 亚洲合集综合久久性色 | 四虎影院免费视频 | 天天干天天做天天射 | 狠狠色噜噜狠狠狠狠色综合久 | 亚洲成人综合网站 | 性欧美大战久久久久久久 | a男人的天堂久久a毛片 | 国产jzjzjz免费大全视频 |