싱글톤 패턴을 잘 모르겠습니다.

싱글톤 패턴에 대해서 공부하는데 잘 모르겠습니다.

조금 쉽게 설명해주실 수 있나요? 그리고 어떨때 사용해야하는지도요.

    1개의 답변이 있어요!

    • 어떤 언어로 학습을 하고 계신지 모르겠지만, 자바를 기준으로 설명을 드리겠습니다.

      Person person1 = new Person(); Person person2 = new Person();

      위 코드 처럼 new 키워드를 사용해 Person이라는 객체를 생성하면 person1, person2는 각각 다른 Person을 의미합니다.

      우리는 모두 같은 인간이지만 같다고 볼 수 없는 것 처럼, 같은 Person에 대해 객체를 생성 하였지만, new라는 키워드로 새로운 객체를 생성 하였기 때문에 다른 사람으로 볼 수 있습니다.

      싱글턴은 어떨때 사용하냐면 예를 들어 저라는 사람은 그 누구도 같을 수 없습니다. 저라는 제 자신만 존재하기 때문이죠.

      class A(){ Person dwkim = new Person(); } class B(){ Person dwkim = new Person(); }

      위 코드처럼 class A,B에서 dwkim 이라는 사람을 만들었습니다. 하지만, dwkim이라는 사람은 딱 한명이기 때문에 의도 하던 코드가 아닙니다.

      class Dwkim(){ Person dwkim; public Person getDwkim(){ if(dwkim == null){ dwkim = Person(); } return dwkim; } }

      위 코드처럼 dwkim을 가져오는 메소드를 작성하면, Dwkim class가 유지되는 동안에는 하나의 dwkim(Person)을 리턴 할 것 입니다.

      여러 곳에서 하나의 유일한 객체만 사용하길 원할때 주로 싱글턴 패턴을 사용합니다.

      이해가 되셨을지 모르겠지만, 디자인 패턴에 관심이 많으시고 책을 찾고 계시다면 '헤드퍼스트 디자인패턴'을 추천 드립니다.