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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Single 方法中為不同的端點創(chuàng)建對象,而不是 java 中的 if 循環(huán)

如何在 Single 方法中為不同的端點創(chuàng)建對象,而不是 java 中的 if 循環(huán)

浮云間 2022-07-06 16:59:52
if (type.equalsIgnoreCase("Android")) {    return new AndroidApi;} else if (type.equalsIgnoreCase("iOS")) {    return new  IosAPi;} else if (type.equalsIgnoreCase("Windows")) {    return new WindowsApi;}我如何創(chuàng)建對象而不是 if 條件那里有 20 個端點。
查看完整描述

3 回答

?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

您可以將 API 實現(xiàn)的類型和供應(yīng)商放在地圖中,例如:


public static final Map<String, Supplier<Api>> supplierMap = Map.of(

        "android",  AndroidApi::new,

        "ios",      IosApi::new,

        "windows",  WindowsApi::new

);


public static Api getApi(String type) {

    return supplierMap.get(type.toLowerCase()).get();

}

假設(shè)它們都實現(xiàn)了一個接口。您可以這樣調(diào)用上述方法:


Api api = getApi("Android");


查看完整回答
反對 回復(fù) 2022-07-06
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

您可以使用工廠設(shè)計模式。


interface OperatingSystem

{

    void runProcess();

}


class AndroidApi implements OperatingSystem {

    public void runProcess() {

        // TODO Auto-generated method stub

    }

}

class IosAPi implements OperatingSystem {

    public void runProcess() {

        // TODO Auto-generated method stub

    }

}

class WindowsApi implements OperatingSystem {

    public void runProcess() {

        // TODO Auto-generated method stub

    }

}


class OSFactory

{

    static OperatingSystem getOPApi(String type){

        if (type.equalsIgnoreCase("Android")) {

            return new AndroidApi();

        } else if (type.equalsIgnoreCase("iOS")) {

            return new  IosAPi();

        } else if (type.equalsIgnoreCase("Windows")) {

            return new WindowsApi();

        }

        return null;

    }

}

public class Client{


    public static void main(String[] args) {

        OperatingSystem os=OSFactory.getOPApi("Android");

    }

}


查看完整回答
反對 回復(fù) 2022-07-06
?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

是的,您可以使用工廠設(shè)計模式或使用 Java 反射 API 來實現(xiàn)。使用 Java 反射 API,我們可以執(zhí)行如下操作,


為這里提到的所有 Api 類創(chuàng)建一個基類。將基類視為public abstract class BaseApi.


HashMap<String,String> map = new HashMap<String,String>();

map.put("Android","AndroidApi");

map.put("iOS","IosApi");

map.put("Windows","WindowsApi");


public static BaseApi getInstance(String type){


    BaseApi obj = (BaseApi)Class.forName(type).newInstance();

    return obj;

}


查看完整回答
反對 回復(fù) 2022-07-06
  • 3 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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