싱글톤
음 꼭 JDBC를 싱글톤으로 디자인 해야한다거나 하는 것이 아니라 선택 사항이지만 아마 모두 이 글을 읽으면 선택하게 될겁니다 ㅎㅎㅎㅎㅎ
앞서 JDBC 를 보았는데 거기 상당히 귀찮은 부분이 있습니다. 무엇일까요?
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "LSB96";
String password = "java";
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
바로 위 처럼 접속하는 부분입니다.
물론 귀찮은 것 뿐만 아니라 매 실행마다 접속하고 close 하고 를 반복하기 때문에 실행에도 부담이 됩니다. 따라서 강요아닌 강요로 싱글톤패턴으로 디자인 하는 것을 추천 드립니다.
싱글톤 패턴
인스턴스의 생성을 제한하여 하나의 인스턴스만 사용하는 디자인 패턴
즉 new 를 사용하지 못하게 막아 새로운 주소를 만들지 않고 하나의 주소로 값을 공유하며 메모리 낭비를 줄입니다.
사용형식
public class JDBC{
1. 우선 하나의 객체를 저장할 공간을 만들어야 합니다.
private static JDBC instance;
2. 그 후 다른 클래스에서 객체 생성을 하지 못하도록 기본 생성자를 private 처리합니다.
private JDBC(){}
3. 1/2 과정에서 꽉 막아버리면 이 클래스 자체를 사용 못하죠?
그래서 한 번만 호출하여 하나의 객체를 얻을 수 있도록 메소드를 만들어줍니다.
public static JDBC getInstance(){
if(instance == null){
instance = new JDBC();
}
return instance;
}
}
3번 설명 -> 앞으로 우린 new 대신 getInstance로 인스턴스화 할겁니다.
만약 JDBC 타입의 instance변수에 객체가 없다면 객체를 저장하여
리턴합니다.