Я пытаюсь удалить повторяющийся код, используя функции высшего порядка.
Чем это отличается от вызова метода Singleton Object?
Пример кода:
filterDFForPaymentType(filterDF, df, "Manual")
filterDFForPaymentType(filterDF, df, "Electronic")
def filterDFForPaymentType(fn: (DataFrame, String) => DataFrame, df: DataFrame, paymentType: String) {
fn(df, paymentType)
}
def filterDF(df: DataFrame, paymentType: String): DataFrame = {
val filteredDF = df.where(col("paymenttypecol") === paymentType)
filteredDF
}
Чем это отличается от вызова той же функции с помощью метода объекта Singleton.
filterDFForPaymentType(UtilClass.filterDF(df, "Manual"))
filterDFForPaymentType(UtilClass.filterDF(df, "Electronic"))
Я уверен, что мы можем сделать гораздо больше, используя функции высшего порядка, но я не очень понимаю суть.
Это правильный способ использования функций высшего порядка?
Может ли кто-нибудь дать мне ссылку для правильного использования функций высшего порядка с примерами?