JAVA/코드

2022_10_13 연습 04 day08.static_.singleton

0304호 2022. 10. 13. 12:46

 클래스에 대해 좀 더 알아보고싶으면 디자인패턴을 공부하기
  디자인패턴 - 클래스를 설계하는 기법
  싱글톤패턴 - 객체를 1개만 생성되도록 설계하는 기법
  1. 나 자신의 객체를 멤버변수로 선언하고, 1개로 고정한다.
    static 클래스명 변수 = new 클래스명();
  2. 객체생성을 못하도록 생성자를 private처리
    private 클래스명() {  }
  3. instance변수(나 자신의 변수)를 getter로 반환
     static 키워드를 붙임
    public static 클래스명 get객체명() {
return instance;
}
  
  
 

package day08.static_.singleton;

public class MainClass {
	
	public static void main(String[] args) {
		
		System.out.println( Computer.a );
		Singleton s = Singleton.getInstance();
		Singleton s2 = Singleton.getInstance();
		Singleton s3 = Singleton.getInstance();

		System.out.println(s == s2 && s2 == s3);
		
		//동일한 변수가 사용됨
		s.site = "이순신";
		System.out.println(s.site);
		System.out.println(s2.site);
		System.out.println(s3.site);
	}

}


결과 : 

클래스명이 호출될때 단 1번 실행
10
true
이순신
이순신
이순신
package day08.static_.singleton;

public class Computer {
	
	public static int a = 10;
	
	
	//정적초기화자 = 1회만 실행됨
	static {
		System.out.println("클래스명이 호출될때 단 1번 실행");
	}

}
package day08.static_.singleton;

public class Singleton {
	
	//디자인패턴 - 클래스를 설계하는 기법
	//싱글톤패턴 - 객체를 1개만 생성되도록 설계하는 기법
	
	//1. 나 자신의 객체를 멤버변수로 선언하고, 1개로 고정한다.
	private static Singleton instance = new Singleton();
	
	//2. 객체생성을 못하도록 생성자를 private처리
	private Singleton() {}
	
	//3. s변수를 getter로 반환
	//   static 키워드를 붙임
	public static Singleton getInstance() {
		return instance;
	}
	
	public String site = "aaa";
	
}