[Java 디자인 패턴] 싱글톤 패턴

huihui·2021년 4월 11일
0

싱글톤 패턴(Singleton Pattern)은 단 하나의 인스턴스만 만들어서 사용할 수 있도록 하는 패턴이다.

public class Student {

	private static Student student = null; 
	
	public static Student getInstance() {
		if (student == null) {
			student = new Student();
		}
		return student;
	}
	
	public void printHello() {
		System.out.println("");
	}
}

Student 클래스를 만들었다.
단 하나의 인스턴스만 만들기 위해서는 생성자의 기능을 막아야 한다.
그렇기 때문에 접근제한자를 private으로 선언해 생성자의 기능을 막았다.

그리고 인스턴스를 만드는 getInstacne 메서드를 만들었다.
이 메서드는 인스턴스가 기존에 존재할 경우 그대로 존재하는 인스턴스를 리턴하고 없으면 하나 만들어서 리턴을 한다.
절대 2개 이상의 인스턴스가 만들어질 수 없도록 했다.

두 개의 StudentA, StudentB 클래스를 만들고 인스턴스를 생성하여 같은지 비교를 해보겠다.

public class StudentA {

	private Student studentA;
	
	public StudentA() {
		this.studentA = Student.getInstance();
	}
	
	public Student returnStudentA() {
		return studentA;
	}
}

public class StudentB {

	private Student StudentB;
	
	public StudentB() {
		this.StudentB = Student.getInstance();
	}
	
	public Student returnStudentA() {
		return StudentB;
	}
}

위처럼 StudentA, StudentB 클래스를 만들었고 싱글톤 패턴으로 인스턴스를 각각 만들었다.

이제 메인 클래스를 만들고 둘을 비교해보자.

public class SingletonMain {

	public static void main(String[] args) {
		StudentA studentA = new StudentA();
		StudentB studentB = new StudentB();
		
		System.out.println(studentA.returnStudentA() == studentB.returnStudentA());
	}
}


결과는 true이다.

0개의 댓글