2 回答

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
如果初始字符串在代碼庫的不同區(qū)域中使用,例如,如果您有兩個具有相同$VIDEOS路徑的不同 URL,則常量可能非常強(qiáng)大,因為您可以一次編輯所有這些。然而,僅僅因為常量“可能”用在不同的地方就創(chuàng)建它們,維護(hù)起來可能會是一場噩夢。例如,如上所述,兩個 API 使用該$VIDEOS路徑,但只有一個發(fā)生更改。
然而,另一方面,在這里使用可能有一個好處,那就是使用slug您的示例中的 , 但已編輯。
private const val SLUG = "thing"
@GET("videos/public/{$SLUG}")
fun getVideos(@Path($SLUG) slug: String, @Query("limit") limit: Int): List<Video>
因為這是在同一個 API 調(diào)用中使用的,但在兩個區(qū)域內(nèi)。要點(diǎn)是你可以將事物變成常量,但前提是它有意義。盡量不要抽象掉整個 API,因為一旦這樣做,更改和維護(hù)就會變得更加困難。
當(dāng)有疑問時,我也會求助于庫本身的示例。Retrofit 文檔此處的示例沒有任何常量。

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
使用第二種方法,代碼變得更具可讀性 - 這是一個非常重要的優(yōu)勢。
使用第一種方法的優(yōu)點(diǎn)是,如果路徑的某些部分發(fā)生變化,則只能在一個地方進(jìn)行更改。但這是一個值得懷疑的優(yōu)勢,因為路徑很少改變,而且第二個選項的改變也不需要太多時間。
第二種方法的缺點(diǎn):
創(chuàng)建了需要跟蹤的額外依賴項,并且您可能會錯誤地更改不需要的內(nèi)容,
您必須檢查每個常量中的內(nèi)容以確保路徑正確。
因此,答案是選項 2(常規(guī)字符串)更好。
添加回答
舉報