일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Singleton
- Abstract Factory
- r
- 디자인패턴 #
- 싱글톤
- 프로토타입 패턴
- 디자인패턴
- F
- El
- Design Pattern
- Kotlin
- 빌터패턴
- 코틀린
- 추상팩토리패턴
- designPattern
- 추상 팩토리
- 옵저버 패턴
- 팩토리 메소드
- Functional Programming
- factory method
- a
- builderPattern
- ㅓ
- Observer Pattern
- ㅋㅁ
- PrototypePattern
- 함수형프로그래밍
- Today
- Total
목록전체 글 (327)
오늘도 더 나은 코드를 작성하였습니까?
함수 - 기본구조 fun max (a: Int, b: Int): Int{ return if (a > b) a else b } 1. fun 함수 선언 키워드 2. 파라미터 a: Int --> name: type 3. fun(... ): 반환 타입 {... } - 식이 본문인 함수 fun max(a: Int, b: Int ) = if (a > b) a else b * statement(문) vs expression(식) expression 은 값을 만들어 내며 다른 식의 하위 요소로 계산될 수 있지만 statement 은 자신을 포함한 블록의 최상위 요소로 존재하며 아무런 값을 생성 하지 못한다. java에서는 모든 제어구조가 statement인 반면 코틀린에서는 loop를 제외하면 대부분의 제어구조가 ex..
이 글은 송유섭 (NAVER / 라이브 서비스 개발)님의 발표자료를 많이 참고하였습니다. 자동 메서드 선택 - 데이터 바인딩 라이브리러리는 자동으로 호환 가능한 매개변수 타입을 갖는 setXXX(arg) 메서드를 찾으려고 시도한다. - View의 attribute의 이름과 타입이 메서드를 찾는 데 사용된다. - 아래 예제를 보면 TextView의 enabled 속성의 boolean 타입을 통해 setEnable(Boolean value) 찾아 호출한다. - 바인딩 표현식은 반드시 정확한 타입을 반환해야 되며 필요하다면 캐스팅을 해야 할 수도 있다. - 자동으로 찾아줄 때 어떤 순서로 찾는 것인가? BindingAdapter --> BindingMethod --> Set Method BindingMetho..
왜 DataBinding 이 필요할까? MVVM 패턴에서 DataBinding 및 LiveData(Observable)을 이용하여 MVP 패턴에서 View와 Presenter 간의 높은 의존성을 약하게 만들어야 되었다. ViewModel은 View에 표현될 데이터를 관리 및 비지니스 로직을 처리한다. 이 데이터를 View과 관찰하고 하고 있다가 비즈니스 로직에 따라 데이터가 변경이 되면 즉시 반영할 수 있다. ViewModel이 View에 대한 의존성을 갖지 않고 느슨하게 연결되려면 DataBinding가 필수적이다. 데이터 바인딩 기본. 모듈 수준 그레이들 파일에 build.gradle(Moudule: app) 데이터 바인딩 허용. android { dataBinding { enabled = true ..
관심사의 분리 초보 개발자는 앱을 만들다보면 UI 기반의 클래스(Activity 또는 Fragment)에 많은 코드를 작성한다. UI 기반의 클래스는 UI 및 운영체제와 상호작용을 처리하는 로직만 포함해야 합니다. 이러한 클래스를 최대한 가볍게 유지하여 많은 수명 주기 관련 문제를 피할 수 있다. Activity 및 Fragment 구현은 소유의 대상이 아니며 Android OS와 앱 사이의 계약을 나타내도록 이어주는 클래스일 뿐입니다. OS는 사용자 상호작용을 기반으로 또는 메모리 부족과 같은 시스템 조건으로 인해 언제든지 클래스를 제거할 수 있습니다. 만족스러운 사용자 환경과 더욱더 수월한 앱 관리 환경을 제공하려면 이러한 클래스에 대한 의존성을 최소화하는 것이 좋습니다 SOLID 원칙과 많은 부분이..