Burninghering's Blog
article thumbnail

1. 싱글톤 패턴이란?

  • 객체 지향 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴
  • static 변수, 메서드를 활용하여 구현 할 수 있음

디자인 패턴 : 객체 지향 프로그램을 용이하게 사용하도록, 추후 유지 보수와 확장이 쉽도록 만들어놓은 패턴

 

2. 싱글톤 패턴으로 회사 객체 구현하기

생성자는 private으로 선언

ex ) 시간 / 회사

 

기본 생성자가 자동으로 제공되면, "회사"를 여러개 만들 수 있게 될 수 있으므로

우리가 미리 생성자를 private으로 선언

private Company() {}

클래스 내부에 유일한 private 인스턴스 생성!

private static Company instance = new Company();

외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공

public static Company getInstance() {
		
	if( instance == null) {
		instance = new Company();
	}
	return instance;
		
}

Company.java

package ch18;

public class Company {
	
	private static Company instance = new Company(); //유일한 인스턴스!
	
	private Company() {
		
	}
	
	//유일한 객체를 외부에서 쓸 수 있도록 하는 메소드
	public static Company getInstance() { //생성자를 안만들어도 쓸 수 있게 static 추가->클래스 이름으로 메소드 사용 
		if (instance==null) { 
			instance=new Company();
		}
		return instance;
	}
}

CompanyTest.java

public class CompanyTest {

	public static void main(String[] args) {
		Company company1 = Company.getInstance();
		
		Company company2 = Company.getInstance();
		
		System.out.println(company1);
		System.out.println(company2);
		
		//Calendar calendar = Calendar.getInstance(); //시간 -> 유일한 객체 제공(회사와 같은 예)
	}
}

JVM이 정해준 힙 메모리 주소가 같다 

 

클래스/변수/생성자,메소드

-는 private

+는 public 

profile

Burninghering's Blog

@개발자 김혜린

안녕하세요! 반갑습니다.