일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 자바문제
- Oracle
- JDBC
- spring
- pyqt
- API
- 대덕인재개발원
- Android
- Mac
- jsp
- 컬렉션프레임워크
- ibatis
- python
- 맥
- 객체지향
- 생활코딩
- nodejs
- 반복문
- servlet
- 단축키
- crud
- html
- 자바
- Error
- 이클립스
- Java
- 배열
- ddit
- Homebrew
- FastAPI
Archives
- Today
- Total
romworld
Singleton 본문
package kr.or.ddit.basic.singleton;
/*
singleton패턴 ==> 객체가 1개만 만들어지게 하는 방법
(외부에서 new 명령을 사용하지 못하게 한다.)
사용 이유 ==> 1. 메모리 낭비 방지할 수 있다.
2. 데이터를 한 곳에 모아 놓고 공유 하기 쉽다.
- singleton클래스 만드는 방법 ( 필수 구성 요소)
1. 자신 class의 참조값이 저장될 변수를 private static으로 선언한다.
2. 생성자의 접근 제한자를 private으로 한다.
3. 자신 class의 인스턴스를 생성하고 반환하는 메서드를
public static으로 작성한다.
(이 메서드의 이름은 보통 getInstance로 한다.)
*/
public class MySingleton {
// 1번 변수선언
private static MySingleton single;
// 2번 private 생성자
private MySingleton() {
System.out.println("싱글톤 클래스의 생성자 입니다...");
}
// 3번 public static
public static MySingleton getInstance() {
// 1번 변수가 null이면 새로운 객체를 생성하여 1번 변수에 저장한다.
if(single ==null) single = new MySingleton();
// 1번 변수를 반환한다.
return single;
}
// 기타 이 클래스가 처리할 내용들을 작성하면 된다...
public void displayTest() {
System.out.println("싱글톤 클래스에서 만든 메서드 호출입니다...");
}
}
package kr.or.ddit.basic.singleton;
public class SingletonTest {
public static void main(String[] args) {
// MySingleton test1 = new MySingleton(); // 외부에서 new 명령으로 생성 불가
MySingleton test2 = MySingleton.getInstance();
MySingleton test3 = MySingleton.getInstance();
System.out.println();
System.out.println("test2 =>" + test2);
System.out.println("test3 =>" + test3);
System.out.println();
System.out.println("test2 == test3 --> " + (test2 == test3)); //참조값이 같은지 검사라 true가 나온다
System.out.println("test2.equals(est3) --> " + (test2.equals(test3)));
test2.displayTest();
}
}
'JAVA > 개념정리' 카테고리의 다른 글
Ibatis (0) | 2022.12.06 |
---|---|
MVC패턴 - JDBC , CRUD (1) | 2022.11.27 |
Properties , ResourceBundle (0) | 2022.11.27 |
JDBC (0) | 2022.11.27 |
Thread 2 (0) | 2022.11.27 |
Comments