일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리팩토링
- 도커
- 쿠버네티스
- DataGridView
- 리액트
- Spring Boot
- 스프링부트
- Kotlin
- Python
- AWS
- VOA
- design pattern
- 파이썬
- MySQL
- Winform
- 코틀린
- mybatis
- machine-learning
- docker
- springboot
- 스프링
- react
- 마이바티스
- Java
- Spring
- 자바
- git
- kubernetes
- c#
- github
Archives
- Today
- Total
보뇨 다이어리
코틀린 디자인 패턴 - 관용구와 안티 패턴 (입력유효성 검사) 본문
반응형
단순히 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 |
반응형
'컴퓨터 관련 > Kotlin 정보' 카테고리의 다른 글
코틀린 디자인 패턴 - 관용구와 안티 패턴 (상수 효율적으로 사용하기) (0) | 2024.12.17 |
---|---|
코틀린 디자인 패턴 - 동작 패턴 이해하기 (해석기) (0) | 2024.12.16 |
코틀린 디자인 패턴 - 동작 패턴 이해하기 (책임연쇄) (0) | 2024.12.16 |
코틀린 디자인 패턴 - 동작 패턴 이해하기 (커맨드) (0) | 2024.12.16 |
코틀린 디자인 패턴 - 구조 패턴 이해하기 (상태) (2) | 2024.12.13 |