상속과 관련해서 생성자는 어떻게 연결이 되는지 헷갈릴만한 포인트들이 있어 한 번 정리해 놓는다. Kotlin 코틀린은 생성자에 클래스이름을 쓰지않고 ‘constructor’라는 키워드를 쓴다. 여러 생성자를 가질 수 있으나, primary constructor는 클래스 첫 라인을 활용한다. ( Kotlin 공식문서 참조 ) 두번째 라인처럼 키워드를 안써줘도 된다. 또한, 세번째처럼 class property정의를 써서 추가적인 할당코드없이 간단하게 사용도 가능하다. 조금 당황스러울 수…
[태그:] kotlin
OOP: property
Kotlin을 보다가 backing field를 접하며, 이게 뭔가싶었는데 다른 언어들도 다 지원하는 property에 대한 내용이었다. 그동안 솔직히 member variable과 property에 대한 개념이 따로 없었음. 아… 부끄럽네. 아뭏튼 정리해보도록 한다. property는 간단히 말해, member variable에 대한 encapsulation이라고 할 수 있다. 클래스를 작성할 때, 값을 저장할 변수를 만들고 의식적으로 getter, setter를 만들어 주고 있었지만, 이를 언어 레벨에서 지원하는게…
Design Pattern: Decorator
Decorator pattern은 객체의 기능을 동적으로 확장하고자 할 때, 또는 상속받을 클래스가 상속이 불가능할 때 사용되는 디자인 패턴이다. 게임의 예를 들면 맵을 돌아다니다가 일시적으로 공격력이 강화되거나, 속도가 빨라지거나, 방어력이 강화되는 아이템을 먹는 경우를 생각해 볼 수 있다.이런 효과들은 중첩되어 적용도 가능하다. 또 익숙한 예로는 text editor를 생각해볼 수 있다. 볼드, 이탤릭, 칼라변경등 기본 텍스트를 꾸며주는 기능들이…
Design Pattern: Factory method
Factory Method Pattern 객체 생성을 동적으로 해야해서 어떤 객체를 생성할지 알 수 없을 때, 객체 생성방법을 알고 있는 factory method를 따로 만들고 생성을 이 메소드에 위임해서 동적으로 생성해 사용하는 방법이다. 예를 들면, 여러 포맷을 지원하는 문서 편집기에서 새로운 문서를 생성할 때 문서 생성을 담당하는게 factory method가 된다. 그림판에서 삼각형, 사각형, 동그라미등의 도형을 생성하는 경우, 역시…
Design pattern: Singleton
singleton 패턴은 인스턴스가 단 하나만 존재해야할 때 사용한다. 관련예는 쉽게 찾아볼 수 있다. preference를 다루는 경우 그 자체가 global 성격을 가지기 때문에 쓸 수 있다. 게임개발에선 audio manager같은경우, 오디오 입출력을 단일화 하기위해 사용한다. 모바일기기의 HW 제어같은 경우 물리적으로 하나만 존재하기 때문에, singleton사용이 이상적이다. 사용방법은 좀 다르지만 안드로이드 공용자원인 시스템 서비스들 (LocationManager, NotificationManger, ConnectivityManager, LayoutInflater 등)의…