시스템 상에서 단 한번 객체를 생성해서 여러 곳에서 공유해 사용하고자 할 때 적용하는 설계 패턴
>> 인스턴스가 사용될 때 인스턴스를 여러개 생성하는 것이 아니라,
기존에 생성했던 동일한 인스턴스를 사용하게끔 한다
1. 생성자의 접근 제어자를 private으로 명시 > 외부에서 객체 생성하는 것을 막는다
2. private static 멤버변수 차원에서 클래스 로딩시점에 자신의 생성자를 이용해 객체를 생성하고 주소값을 저장
(현 객체의 주소값은 static 영역 (meta-space / class area)에 저장하게 됨)
3. public static 메서드로 한번 만든 객체의 주소값을 외부에서 반환할 수 있도록 getInstance() 메서드를 정의
private static MemberDAO instance = new MemberDAO();
public static MemberDAO getInstance() {
return instance;
}
public class test {
public static void main(String[] args) {
MemberDAO dao1 = MemberDAO.getInstance();
MemberDAO dao2 = MemberDAO.getInstance();
}
//(dao1 == dao2, 객체 주소가 같다)
반응형
'Java' 카테고리의 다른 글
[Spring] Spring MVC? (0) | 2021.06.02 |
---|---|
DBCP (Database Connection Pool) 연습 (1) | 2021.04.25 |
MVC Architecture Model 2 연습예제 (0) | 2021.04.25 |
MVC Architecture Model 1 연습예제 (0) | 2021.04.23 |
MVC Architecture ( Model 1 / Model 2 ) (0) | 2021.04.22 |
댓글