Kotlin 확장 기능으로 인지 부하를 줄입니다.
매우 유용한 Kotlin 기능은 확장 기능입니다. 확장 기능이 무엇이고 코드에서 확장 기능을 사용하여 더 읽기 쉽게 만드는 방법을 살펴보겠습니다.
"Kotlin은 클래스에서 상속받지 않고도 새로운 기능으로 클래스 또는 인터페이스를 확장할 수 있는 기능을 제공합니다."
일부 금액이 거래에 유효한지 확인하려면 다음과 같이 부울을 반환하는 간단한 확인 기능을 만들 수 있습니다.
fun isValidAmount(amount: BigDecimal) = amount > ZERO && amount < PAYMENT_MAX_AMOUNT
또는 화면에서 일부 보기를 비활성화/활성화해야 합니다.
fun hide(amountView: View) {
amountView.visibility = View.GONE
}
fun show(amountView: View) {
amountView.visibility = View.VISIBLE
}
이 두 함수는 절대적으로 정확하지만 코드를 좀 더 직관적이고 읽기 쉽게 만들기 위해 Kotlin 확장을 사용하여 더 나아갈 수 있습니다. 이제 이 두 함수가 어떻게 생겼는지 봅시다.
fun BigDecimal.isValidAmount() = this in ZERO..PAYMENT_MAX_AMOUNT
//and applied in code
val amount = BigDecimal(1000)
if(amount.isValidAmount()) {
// make a payment
} else {
//show message to the user
}
보기 기능을 숨기면 다음과 같습니다.
// Hides the view
fun View.hide() {
visibility = View.GONE
}
// Shows the view
fun View.show() {
visibility = View.VISIBLE
}
// Hides or show the view based on the flag
fun shouldShow(show: Boolean) {
if(show) visibility.VISIBLE else visibility.GONE
}
// when applied
if(amount.isValidAmount()) {
amountView.show()
} else {
amountView.hide()
}
// or even further with one liner
amountView.shouldShow(amount.isValidAmount())
이것이 코드의 가독성을 어떻게 향상시키는지 확인할 수 있습니다.
후드 아래에는 특별한 것이 없습니다. Kotlin 바이트코드를 Java 소스 파일로 디컴파일하면 전달된 인수가 있는 일반 메서드만 볼 수 있습니다.
따라서 성능상의 이점은 없으며 순수한 Kotlin 합성 설탕일 뿐입니다!
당신은 그것들을 가지고 놀 수 있고 가독성을 향상시키기 위해 필요하다고 생각되는 앱 내부의 모든 곳에서 사용할 수 있습니다. 많은 확인과 유효성 검사가 필요한 유틸리티 클래스에 적합합니다.
Reference
이 문제에 관하여(Kotlin 확장 기능으로 인지 부하를 줄입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/boryans/reduce-cognitive-load-with-kotlin-extension-functions-3dfo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)