일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 스프링부트
- c#
- docker
- Spring Boot
- MySQL
- 도커
- 쿠버네티스
- 스프링
- 리팩토링
- react
- DataGridView
- design pattern
- Python
- Winform
- kubernetes
- 코틀린
- machine-learning
- 리액트
- 자바
- VOA
- springboot
- git
- Java
- mybatis
- 파이썬
- github
- Kotlin
- Spring
- AWS
- 마이바티스
Archives
- Today
- Total
보뇨 다이어리
코틀린 디자인 패턴 - 구조 패턴 이해하기 (퍼사드, 프록시) 본문
반응형
비교적 짧은 내용들이라서 2개의 패턴을 합쳐서 설명하도록하겠습니다.
근데 책을 읽으면서 사실 완전히 공감하는건 아닌데...일단 한번 소스를 보시져!
퍼사드 패턴
확장함수를 써서 처리하라고하는데 이게 좀 이해가 안되는게
그렇게되면 중구난방으로 분산되기도 하고 특정 유틸성 클래스를 두는게 좋다고 생각합니다.
무엇보다 퍼사드는 개인적으로 여러개의 ~Service 클래스를 묶어서 하나의 클래스에서 동작시키게끔하는건데 확장함수를 쓰게되면
성격이 좀 달라진다고 생각하기때문에 참고용으로 기록..!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class Chapter03Test {
@Test
fun facadeTest() {
val memberService = MemberService()
memberService.execute()
}
class MemberService {
private fun doSomething(): String {
return "hello"
}
}
fun MemberService.execute() {
print("doSomethingElse...")
}
}
|
cs |
프록시
사실 프록시에는 가상 프록시, 원격 프록시, 보호 프록시 또는 접근 제어 프록시까지 총 3개의 형태가 있는데 책에서는 가상 프록시 형태로 글을 소개하고있습니다. 다른 2개의 프록시 형태도 결국 외곽에서 보면 똑같은데 목적에 따라 이름을 다르게 지은것!
아래 소스를 실행시키면 아래와 같이 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class Chapter03Test {
@Test
fun lazyProxyTest() {
val catImage = CatImage("smile", "www.naver.com")
catImage.printImage()
}
data class CatImage(val thumbnailUrl: String, val url: String) {
val image: ByteArray? by lazy {
// 매우 시간이 많이 걸리는 작업
println("모든게 끝났습니다.")
null
}
fun printImage() {
println("출력하기전...")
println(image)
println("출력하기끝!!")
}
}
}
|
cs |
출력하기전...
모든게 끝났습니다.
null
출력하기끝!!
반응형
'컴퓨터 관련 > Kotlin 정보' 카테고리의 다른 글
코틀린 디자인 패턴 - 동작 패턴 이해하기 (커맨드) (0) | 2024.12.16 |
---|---|
코틀린 디자인 패턴 - 구조 패턴 이해하기 (상태) (2) | 2024.12.13 |
코틀린 디자인 패턴 - 구조 패턴 이해하기 (브릿지) (0) | 2024.12.11 |
코틀린 디자인 패턴 - 구조 패턴 이해하기 (데코레이터) (0) | 2024.11.28 |
코틀린 디자인 패턴 - 생성패턴 사용하기 (0) | 2024.11.28 |