디자인패턴 싱글톤 질문입니다 (초보 개념질문)

조회수 583회

코딩 입문한지 얼마 되지않아서 개념이 부족합니다 디자인패턴을 처음 공부해보려고하는데

싱글톤 설명을 보니 "클래스의 인스턴스가 하나임을 보장하고 접근할 수 있는 전역적인 접근점을 제공하는 패턴으로, 디자인 패턴의 가장 기초라 할 수 있습니다." 라고 되어있던데,

왜 클래스의 인스턴스가 하나임을 보장해야하는지를 모르겠습니다

애초에 클래스를 만드는 목적이 쉽게 재사용하려고 하는것 아니었나요? 클래스를 만들어놓으면 그걸 통해 여러 인스턴스를 만들고, 변경이 필요하면 클래스만 변경하면 각 인스턴스들이 다 변경되잖아요? 근데 싱글톤을 이용하면 클래스를 사용하는 의미가 없어지지않나요?

하나임을 보장해서 얻을 수 있는 이득이 뭔지 궁금합니다..

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 보통 시스템 리소스 관리할때 필요합니다.

    A라는 공유메모리가 있다고 합시다. 이를 관리하는 클래스를 만들었는데 여기저기서 객체를 생성해버리면? 관리자가 여러개 생기는 셈이 되죠. 그렇다면 여기저기서 읽고 쓰고 난리가 날겁니다. 누군가 쓰는 도중에 다른데서 쓰더라도 막을 방법이 없습니다. Mutex나 Lock 같은거 걸어봐야 소용없습니다. 다른 객체니까요.

    하지만 싱글톤을 통해 단 하나의 관리자만 둘 수 있다면 간단해집니다. 어디서 읽고 쓰고 해도 이 공유 메모리의 관리자는 하나라서 읽기 쓰기에 Lock을 걸어서 간단하게 해결할 수 있습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)