Java/개념
JAVA 싱글톤 패턴2
정복잉
2020. 5. 15. 07:46
반응형
package day15;
public class Single {
private Single() {}
private static Single instance = new Single();
public static Single getInstance() { //set의 값을 없앤다 -> 외부에서 재정의 불가능하게
return instance;
}
public void sayHello() {
System.out.println("안녕");
}
}
package day15;
public class SingleMain {
public static void main(String[] args) {
day15.Single s = day15.Single.getInstance();
//싱글톤 패턴은 new를 선언하지 않는다. new가 없다면, 싱글톤 패턴 생각
// Single s = new Single(); 안되는 이유는 private로 해놨기 때문
s.sayHello();
}
}
※개념정리
싱글톤 패턴?
하나의 객체만 가지고 있으며, 클래스 내부에서 객체를 생성하고
외부에서는 내부에서 선언한 객체만 공통으로 사용만 할수 있다.
싱글톤 패턴 구조
1. 생성자를 만든다.
private(혹은 protected) 클래스명( ){ }
private Sun( ) { }
protected Sun( ) { }
2.객체를 선언한다.
private static 클래스명 매개변수 = new 클래스명( );
private static Sun s = new Sun( );
3.getter을 선언한다.
public static 클래스명 get매개변수( ){
return ; }
public static Sun getS( ){
return ; }
외부클래스의 경우
Sun이라는 와부 클래스를 사용시 객체선언을 하지만,
싱글톤패턴일 경우 객체 선언을 못한다.
패키지명.클래스명.매개변수 = 패키지명.클래스명.getter( );
day15.Sun s = day15.Sun.getS( );
//new선언을 안하고 이렇게 선언 한다.
s.선언할 메서드