singleton 패턴은 인스턴스가 단 하나만 존재해야할 때 사용한다. 관련예는 쉽게 찾아볼 수 있다. preference를 다루는 경우 그 자체가 global 성격을 가지기 때문에 쓸 수 있다. 게임개발에선 audio manager같은경우, 오디오 입출력을 단일화 하기위해 사용한다. 모바일기기의 HW 제어같은 경우 물리적으로 하나만 존재하기 때문에, singleton사용이 이상적이다. 사용방법은 좀 다르지만 안드로이드 공용자원인 시스템 서비스들 (LocationManager, NotificationManger, ConnectivityManager, LayoutInflater 등)의…
[태그:] 코틀린
Design Pattern: Template Method
디자인 패턴 공부하면서 제일 중요하게 생각하고 있는 점이 실제 사용예이다. 제일 엿같은점이 커피머신이니, 스파게티니, 공구상점이니 이딴 개같은 예제들을 끌어와 설명하고 있는 부분이라서. 아니, 반복해서 마주치는 문제를 OOP로 설계하는 보편적인 방법들을 설명하면서 어떻게 실사용예 없이 그럴수가 있지? 그냥 오픈소스라도 좀 끌어와서 설명해야하는거 아니냐. Template Method도 실제 예가 없으면 그냥 가상클래스 상속받아 사용하는 generalization이 전부다. 의미부여가 안된다고….
Kotlin vs Python: 기본 문법의 차이 추가정리
여전히 두 프로그래밍 언어를 병행해서 공부하다보니, 나도 모르게 헷갈리게 사용하는 경우가 많다. 앞에서 차이점 몇가지를 얘기했었는데, 나머지도 정리해 보려한다. 변수 Kotlin 값 변경이 가능하게 하려면 ‘var’, 값 변경이 불가능하게 하려면 ‘val’로 정의한다. 값이라고 했지만, 사실은 레퍼런스의 의미로 객체의 경우 다른 객체를 지정하도록 변경하지 못한다. Python 동적타입 언어답게 아무런 키워드 없이 그냥 사용 가능하다. 함수 Kotlin…
Kotlin vs Python : Lambda function
나처럼 옛날 개발자는 별 관심 없던 이름중에 하나가 람다 함수였다. Lisp같은 고오오오급 함수형 프로그래밍에서나 쓴다고 주워듣고 있었는데, 오랫만에 코딩하다보니 필수 아이템이 되어 있네. 아주 새로운 개념은 아니고 실용적으로 간편하게 쓸 수 있는 anonymous function 정도로 알면 될거 같다. Java에서 너저분하게 사용했던 anonymous function의 자리에 lambda function을 넣으면 매우 간결해진다. python lambda arguments : expression 위와…
Kotlin vs Python : ‘as’ keyword
Kotlin과 Python이 같이 갖고 있는 키워드중, ‘as’가 있는데 이것 또한 다르게 쓰인다. Kotlin Kotlin에서 ‘as’는 명시적 캐스팅(형변환) 연산자이다. 공식 문서 참조. 문서에 따르면, 이경우 형변환에 실패했을 때, exception이 발생한다. 그래서 Unsafe cast operator라고 한다. 반면에, ‘as?’를 사용하면 형변환 실패시 null을 반환한다. 그래서 Safe cast operator라고 부른다. Python Python에서 as 는 alias를 의미한다. module import와 리소스…