Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- #고클린
- Easy
- java
- 리버싱
- GraphQL
- springframework
- #크랙미2번
- #크랙미 10번
- #크랙미3번
- #리버싱
- #abex
- #abex크랙미4번
- #크랙미
- #심플즈 크랙미
- #심플즈
- #보안뉴스
- #보안이슈
- #abex크랙미
- #파밍
- #크랙미 5번
- java8
- Spring
- #크랙미 9번
- leetcode
- #크랙미4번
Archives
- Today
- Total
Halo World
싱글톤(Singleton) 본문
| 싱글톤(Singleton)
전체 프로그램에서 단 하나의 객체만 만들도록 보장해야하는 경우가 있다. 단 하나만 생성된다고 해서 이 객체를 싱글톤(Singleton)이라고 한다.
싱글톤을 만들기 위해서는 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.
그리고 이를 위해 생성자 앞에 Private 접근 제한자를 붙여준다.
> 싱글톤을 만드는 코드
Public class Singleton{
// 정적 필드
private static Singleton A = new Singleton();
// 생성자
private Singleton() {}
// 정적 메소드
static Singleton getInstance(){
return A;
}
}
자신의 타입인 정적 필드를 하나 선언하고 자신의 객체를 생성해 초기화한다.
(클래스 내부에서는 new 연산자로 생성자 호출이 가능함)
정적 필드로 private 접근 제한자를 붙여 외부에서 필드값을 변경하지 못하도록 막는다. 대신 외부에서 호출하 수 있는 정적 메소드인 getInstance()를 선언하고 정적 필드에서 참조하고 있는 자신의 객체를 리턴해준다.
> 외부에서 객체를 얻는 유일한 방법
Singleton 변수1 = Singleton.getInstance();
Singleton 변수2 = Singleton.getInstance();
이때, getInstance() 메소드는 단 하나의 객체만 리턴하기 때문에 아래 코드에서 변수1과 변수2는 동일한 객체를 참조한다.
'개발 지식 > JAVA' 카테고리의 다른 글
자바 Stack 예제 (0) | 2017.06.06 |
---|---|
접근 제한자 (0) | 2017.06.03 |
객체 지향 프로그래밍의 특징(캡슐화, 상속, 다형성) (0) | 2017.06.02 |
컴파일러, 인터프리터, 하이브리드 (0) | 2017.06.01 |
JSP 모델1, 모델2 개념과 장단점 (0) | 2017.06.01 |