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";
}