儘管手機對 JSR 標準支援差異、廠商 VM 實現不一削弱了「一次編寫、到處運行」的承諾,但 J2ME 憑藉開發門檻低、可移植性強,仍是功能機時代移動開發主流。企業級應用多採 C/S 架構:伺服器承擔複雜業務邏輯與數據持久化,客戶端負責輕量交互、本地緩存(聊天記錄、帳號密碼等)。

針對即時通訊(IM)等典型場景,將傳統 MVC 映射為四大職責層:
| 層次 | 職責 | 關鍵技術點 |
|---|---|---|
| Handler(控制層) | 網絡請求處理、消息分發、全局協調 | 核心樞紐,貫穿所有層;採用非阻塞 I/O + 狀態機 |
| Database(數據層) | 本地持久化存儲 | 基於 RMS (RecordManagementSystem);空間珍貴,需壓縮/加密策略 |
| Model(領域層) | 業務實體封裝、公共接口定義 | 如 Message 類封裝消息結構,提供序列化/反序列化 |
| View(視圖層) | UI 渲染、鍵盤事件響應 | 僅與 Handler 通信,不直接訪問 Database 或網絡 |

// View 層:用戶點擊發送
void onSendClick(String text) {
Message msg = new Message(localUser, targetUser, text, System.currentTimeMillis());
handler.sendMessage(msg); // 異步投遞
}
// Handler 層:統一分發
void sendMessage(Message msg) {
// 1. 本地持久化(離線重發用)
database.saveOutbox(msg);
// 2. 網絡發送
network.send(msg, new Callback() {
public void onSuccess() { database.markSent(msg.id); }
public void onFail() { scheduleRetry(msg); }
});
}
// 接收端 Handler
void onNetworkMessage(byte[] data) {
Message msg = Message.parse(data);
database.saveInbox(msg);
view.notifyNewMessage(msg); // 觸發 UI 刷新
}