일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AppBarLayout
- Behavior
- lifecycle
- onMeasure
- notification
- room
- CoordinatorLayout
- 알고리즘
- hilt
- LiveData
- activity
- Android
- recyclerview
- onLayout
- 코틀린
- sqlite
- HTTP
- Navigation
- View
- ViewModel
- Coroutine
- 안드로이드
- CollapsingToolbarLayout
- BOJ
- kotlin
- Algorithm
- 알림
- DataBinding
- 백준
- CustomView
- Today
- Total
목록Design Pattern (2)
개발일지
Command Command 패턴은 객체의 메소드를 클래스로 만들어 캡슐화 하여 사용하는 패턴입니다. 만약 A Class에서 B Class 기능을 실행하려면 B Class가 의존적으로 필요하지만 Command 패턴을 사용하면 의존성을 제거할 수 있습니다. 불을 키는 Handler를 구현한다고 합시다. 생성자로 불을 키는 클래스를 받고 함수를 실행하면 됩니다. class NoCommandHandler( private val on: LightOnCommand ) { fun invoke() { on.execute() } } 만약 해당 클래스에서 불을 끄는 클래스로 변경한다면 내부의 코드를 변환해야하고 하나의 핸들러로 불을 키고 끄는 기능을 추가한다면 구조를 바꿔야 합니다. -> 기능과 핸들러가 의존적이고 기능..
Singleton Pattern 객체를 생성할 때 생성자가 호출되고 메모리에 올라가는 등 비용이 발생한다. 만약 객체를 생성할 때 비용이 크다면 객체를 자주 생성하는 일은 시스템에 부담이 클 것이다. 싱글톤 패턴은 객체를 한번만 생성하고 생성된 객체를 재사용하면서 객체의 재생성 비용을 줄이는 디자인 패턴이다. Database를 연결하고 접근하는 객체를 예로 들어 생각하면 DB를 연결할 때 드는 비용은 매우 비싸다. 하지만 연결을 한번 하고 생성된 객체를 재사용한다면 연결 비용을 줄일 수 있을 것이다. * 인스턴스화 하는 비용을 줄일 수 있다는 장점을 가지지만, 한번 생성한 인스턴스를 반납하지 않기 때문에 무분별한 싱글톤 패턴 사용은 오히려 메모리 낭비를 일으킨다. * 싱글톤 패턴은 객체간 결합도를 높이기..