| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- appcompatactivity
- 디자인 패턴
- 상태관리
- 데코레이터 패턴
- 리사이클러뷰풀
- viewModelScope
- DiffUtil
- recyclerview
- AAC
- NestedScrollView
- 플로이드워셜
- http 역사
- 프로세스
- http발전과정
- Kotlin
- appcompatacitivity
- 자이고트
- apk 빌드 과정
- GetX
- 뷰홀더
- 내부 단편화
- 절대 주소
- AsyncListDiffer
- 안드로이드
- 운영체제
- 리사이클러뷰
- Dispatchers
- 물리 메모리
- flutter
- Android
- Today
- Total
목록2023/03/13 (3)
hong's android
클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다. 즉, 인스턴스를 추가로 만들지 못하게 하여야 하고, 전역 접근 지점을 제공해야 한다. 연결 풀이나, 스레드 풀, 사용자 설정 같은 부분에서 싱글턴 패턴이 많이 쓰인다. 방법 1. 일반적인 싱글톤 패턴 Public class Singleton{ private static Singleton uniqueInstance; private Singleton(){} public static Singleton getInstance(){ if(uniqueInstance == null){ uniqueInstance = new Singleton(); } return uniqueInstance; } } 문제점 멀티 스레드 환경에서 동시에 getInsta..
적은 수정을 해야 되는 경우에도 새로운 클래스를 만들고 객체를 생성하는 것은 비 효율적이다. 클래스 선언과 객체 생성을 동시에 가능하다. 1. 객체 식 (Object expressions) window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { /*...*/ } override fun mouseEntered(e: MouseEvent) { /*...*/ } }) 추상 클래스나 인터페이스를 구현해서 클래스를 따로 정의하지 않고 사용할 수 있다. 즉, 익명 클래스를 만들 수 있다. class C { private fun getObject() = object { val x: String = "x" } ..
요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화 할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. 요청을 하는 객체와 요청을 수행하는 객체를 분리할 수 있다. (의존성 분리) 커맨드 패턴을 이용해서 스케쥴러나 스레드풀, 작업큐에 활용할 수 있다. 만약 명령을 실행하는 객체가 다수의 명령어를 실행해야 한다고 생각해보자. Public void setLightOn(Light light){ light.turnOn(); } Public void setLightOn(Light light){ light.turnOff(); } Public void setAlarmOn(Alarm alarm){ alarm.turnOn(); } 한 클래스 안에 실..