第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

基于請(qǐng)求標(biāo)識(shí)符的客戶請(qǐng)求工廠

基于請(qǐng)求標(biāo)識(shí)符的客戶請(qǐng)求工廠

犯罪嫌疑人X 2021-04-08 14:15:39
在我的程序中,我正在通過Java套接字從客戶端獲取請(qǐng)求。每個(gè)請(qǐng)求都有一個(gè)唯一的命令標(biāo)識(shí)符,該標(biāo)識(shí)符對(duì)應(yīng)于應(yīng)用程序側(cè)的指定命令?,F(xiàn)在,我有了一個(gè)帶有很大開關(guān)的類,它根據(jù)收到的命令I(lǐng)D創(chuàng)建命令類的實(shí)例。此類ByteBuffer從客戶端和ClientConnection對(duì)象接收帶有請(qǐng)求數(shù)據(jù)的類(代表客戶端與服務(wù)器之間的連接的類)。它從讀取前兩個(gè)字節(jié)ByteBuffer并獲取相應(yīng)的命令(擴(kuò)展ClientRequestclass的class實(shí)例)。例如:public static ClientRequest handle(ByteBuffer data, ClientConnection client) {    int id = data.getShort();  //here we getting command id    switch (id) {        case 1:            return new CM_ACCOUNT_LOGIN(data, client, id);        case 2:            return new CM_ENTER_GAME(data, client, id);        //...... a lot of other commands here        case 1000:            return new CM_EXIT_GAME(data, client, id);    }    //if command unknown - logging it    logUnknownRequest(client, id);    return null;}我不喜歡大型交換機(jī)的結(jié)構(gòu)。我的問題是:是否有一些方法可以重構(gòu)此代碼以使其更優(yōu)雅?也許使用一些模式?另外,將來(lái)我想嘗試在程序中使用依賴項(xiàng)注入(Guice),可以ClientRequest根據(jù)接收到的ID將其用于實(shí)例化實(shí)例嗎?
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)