Fonctions de haut niveau Kotlin vs fonction objet
Vahan
J'ai une fonction statique qui est limitée à un certain contexte, par exemple uniquement pour les documents. Il existe 2 façons de le définir comme fonction ou fonction de niveau supérieur dans un objet.
1.
package com.armsoft.mtrade.data.pref
import com.armsoft.mtrade.App
import com.armsoft.mtrade.domain.model.DocSaveType
object DocPrefManager {
private const val DOC_PREF = "DOC_PREF"
private const val KEY_ORDER_SAVE_TYPE = "KEY_ORDER_SAVE_TYPE"
@JvmStatic
fun setOrderSaveType(orderSaveType: DocSaveType) {
val context = App.getContext()
val sharedPreferences = context.getSharedPreferences(DOC_PREF, 0)
val editor = sharedPreferences.edit()
editor.putString(KEY_ORDER_SAVE_TYPE, orderSaveType.getCode())
editor.commit()
}
}
2.
package com.armsoft.mtrade.data.pref
import com.armsoft.mtrade.App
import com.armsoft.mtrade.domain.model.DocSaveType
fun setOrderSaveType(orderSaveType: DocSaveType) {
val context = App.getContext()
val sharedPreferences = context.getSharedPreferences(DocPrefManager.DOC_PREF, 0)
val editor = sharedPreferences.edit()
editor.putString(DocPrefManager.KEY_ORDER_SAVE_TYPE, orderSaveType.getCode())
editor.commit()
}
L'avantage de la fonction de niveau supérieur est qu'elle n'est pas enveloppée dans un objet et l'inconvénient d'être accessible de partout sans préfixe de nom de classe. Existe-t-il des avantages ou des inconvénients ou des meilleures pratiques pour de tels cas?