package P4;
public class App {
public static void main(String[] args) {
SomeComponent sc = SomeComponent.getInstance();
sc.func();
}
}
// Component = 기능 위주의 클래스... 대부분의 경우 한번만 생성... 재활용
// 싱글톤
// 한번만 객체 생성
// Dto, Vo = 데이터 구조의 클래스... 많이 자주 생성됨
// Math, System 클래스 등은 전부 스테틱이라 생성자를 private으로 해서 인스턴스 생성을 못 하게 막았다.
class SomeComponent{
// 싱글톤 패턴 코드 생성패턴
// private static SomeComponent instance = null;
// public static SomeComponent getInstance() {
// if(instance == null) {
// instance = new SomeComponent();
// }
// return instance;
// }
// private SomeComponent() {}
private static final SomeComponent instance = new SomeComponent();
public static SomeComponent getInstance() {
return instance;
}
private SomeComponent() {}
// 실제 기능
public void func() {
System.out.println("기능이 실행됩니다.");
}
}