컴퓨터 관련/Kotlin 정보
코틀린 디자인 패턴 - 관용구와 안티 패턴 (입력유효성 검사)
보뇨
2024. 12. 18. 13:36
반응형
단순히 if 구문으로도 처리할수있지만 코틀린 철학에 맞게 설계한것들이 몇몇개가 있는데
require, check 같은것들이 대표적이라고 생각한다.
require 는 에러를 IllegalArgumentException 으로 던지지만
check 는 IllegalStateException 으로 던지기때문에 새로 wrapping 해서 쓰는것도 나쁘지않을꺼같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
class Chapter09 {
@Test
fun basic() {
require(isTeenager()) {
"성인이용불가 컨텐츠입니다."
}
check(isBettingMoneyLess()) {
"충분한 베팅금액이 있지않습니다."
}
naverRequire(isTeenager()) {
"성인이용불가 컨텐츠입니다."
}
}
private fun isTeenager(): Boolean {
return false
}
private fun isBettingMoneyLess(): Boolean {
return false
}
class NaverException(message: String) : RuntimeException(message)
private inline fun naverRequire(check: Boolean, lazyMessage: () -> String) {
if (check) {
throw NaverException(lazyMessage())
}
}
}
|
cs |
반응형