16. 오브젝트

2021. 5. 5. 12:42

클래스는 단지 인스턴스 객체를 만들기 위한 '틀'이기 때문에 내부 속성, 함수를 사용하기 위해서는 var a = Person("김돈우", 1998) 이와 같은 생성자를 통해 실체가 되는 인스턴스 객체를 만들어야 했다.

 

하지만 오브젝트는 단 하나의 객체만으로 공통적인 속성과 함수를 사용해야하는 코드에서는 굳이 class를 쓸 필요없이 object를 사용하면된다.

 

1. Singleton Pattern

  • 클래스의 인스턴스를 단 하나만 만들어 사용하도록 하는 코딩 아키텍쳐 패턴

예시.

  • 코드 어디서든 호출하여 호출한 횟수를 카운팅하거나 초기화할 수 있는 Counter Object
  • Object는 인스턴스를 생성하지 않고 그 자체로 객체이기 때문에 생성자를 사용하지 않는다.
  • 이후 코드 전체에서 공용으로 사용이 가능

2. Companion Object

  • 클래스 안에도 오브젝트를 만들 수 있다.
  • 인스턴스간의 공용으로 사용할 속성과 함수를 별도로 만드는 기능
  • 기능적으로는 기존 언어에서 static 멤버와 유사하다.
    • static 멤버 : 클래스 내부에서 별도의 영역에 고정적으로 존재하여 인스턴스를 생성하지 않아도 공용으로 사용가능한 속성이나 함수

  • 서로 다른 인스턴스이지만 companion object 내에 있는 total을 공유하고 있어서 모든 인스턴스에서 사용 가능

BELATED ARTICLES

more