본문 바로가기
Dev/Java

게시판 작업시 싱글톤 패턴을 이용하는 이유

by vellahw 2022. 9. 27.

 

https://tavi.tistory.com/29

 

싱글톤 (Singleton)

전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있는데, 단 하나만 생성된 이 객체를 싱글톤이라고 한다. 싱글톤을 이용하는 이유는 최초 한번의 new 연산자를 통해서 고정

tavi.tistory.com

 


 

서비스 클래스를 개발 했다면 서비스 클래스를 이용해서 객체를 생성한 뒤 실행한 메소드를 호출하도록 코드를 작성하게 된다.

그런데 대다수의 서비스 클래스는 객체를 여러번 만들더라도 실제로 수행하는 기능은 동일한 경우가 많다.

 

ReadArticleService service1 = new ReadArticleService();
ReadArticleService service2 = new ReadArticleService();

Article article1 = service1.read(messageId);
Article article2 = service2.read(messageId);
Article article3 = service1.read(messageId);

예를 들어 위 코드에서 service1과 service2는 서로 다른 ReadArticleService 객체를 참조하는 래퍼런스인데 service1.read() 메소드를 두 번 실행하나 service2.read() 메소드를 실행하나 실행 되는 결과는 동일하다.

위와 같이 한 개의 서비스 객체를 여러번 사용하는 것과 매번 새로운 서비스 객체를 생성해서 사용하는 것의 기능상 차이가 없다면,

싱글톤 패턴 작업으로 매번 새로운 서비스 객체를 생성하지 않고 한 개의 객체를 재사용 하도록 구현할 수 있다.

 

ReadArticleService service1 = ReadArticleService.getInstance();
Article artcile = service1.read(messageId);

ReadArticleService service2 = ReadArticleService.getInstance();

위 코드를 싱글톤 패턴이 적용된 클래스로부터 객체를 가져와 사용한다고 가정 했을 때,

생성자를 직접 사용하지 않고 객체에 접근 할 수 있도록 해주는 getInstance 메소드를 이용해서 객체를 구한 뒤 필요한 메소드를 실행하는 것을 알 수 있다.

또한 getInstance 메소드는 매번 동일한 객체를 리턴 하기 때문에 위 코드에서 service1과 service2는 같은 객체를 참조한다.

 

댓글