JAVA

디자인 패턴 - 싱글톤

승운노트 2025. 9. 30. 14:47

디자인 패턴(Design Patterns)은 소프트웨어 개발에서 자주 반복되는 문제들을 해결하기 위해 만들어진

재사용 가능한 코드 설계 방법입니다.

즉, 소프트웨어 설계 시 발생할 수 있는 문제를 효율적으로 해결하기 위한 설계의 모범 사례라고 할 수 있습니다.

 

장점

  • 개발자간의 원활한 소통
  • 소프트웨어 구조 파악이 용이
  • 재사용을 통한 개발 시간 단축
  • 설계 변경 요청에 대한 유연한 대처

단점

  • 객체지향 설계에 대한 깊은 이해도가 필요
  • 간단한 문제에 대해 디자인 패턴을 적용하는 것이 오히려 더 복잡하고 비효율적일 수 있습니다.
  • 모든 문제에 대해 디자인 패턴을 적용하는 것은 적절하지 않습니다.

디자인 패턴은 크게 생성(Creational), 구조(Structural), 행동(Behavioral)으로 구분할 수 있습니다.

생성 패턴

생성 패턴(Creational Pattern) : 객체 생성에 관련된 패턴으로, 객체가 생성되는 방식을 기본적인 형태에서 분리하여 코드의 유연성을 높입니다

Factory Method, Abstract Factory, Builder, Prototype, Singleton

 

 

package ch01;

// 싱글톤 패턴으로 코드를 작성해보자
// 1. 정적 변수 선언
// 2. private 생성자 선언
// 3. public 정적 메서드를 선언
public class SingleTon {

    // 유일한 인스턴스를 저장할 변수(private)
    private static SingleTon instance;

    // 생성자를 private 선언해 주어야 한다.


    private SingleTon() {}

        // 인스턴스를 반환하는 정적 메서드를 만들어 준다(public) - 외부에서 접근 가능
    public static synchronized SingleTon getInstance() {

        if (instance == null ) {
            instance = new SingleTon();
        }
        return instance;
        }

    public static void main(String[] args) {
        // 객체를 여러개 생성해서 주소값이 같은지 비교 판단해보세요.

        SingleTon s1 = getInstance();
        SingleTon s2 = getInstance();


        System.out.println(s1 == s2);
        System.out.println(s1);
        System.out.println(s2);


    } // end of main

}

'JAVA' 카테고리의 다른 글

디자인 패턴 - 어댑터 패턴  (0) 2025.10.02
디자인 패턴 - 팩토리 패턴  (0) 2025.10.02
성능 최적화(HikariCP) 와 커넥션 풀이란?  (0) 2025.05.27
JDBC 구성 요소(아키텍처)  (0) 2025.05.27
Java.time 패키지  (0) 2025.05.16