반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.DisignPattern.Singleton 본문

[IT]/java

java.DisignPattern.Singleton

givemebro 2021. 4. 14. 10:11
반응형

 

**Singleton Design Pattern**
 why? 시스템 상에서 단 한번 객체를 생성해서 여러 곳에서 공유해 사용하고자 할 때 적용하는 설계 패턴 
 ( 참고 - spring framework에서는 기본 객체 운용 방식이 singleton 이다 ) 
 
 적용 방안 
 1) 생성자의 접근 제어자 private으로 명시해 외부에서 객체 생성하는 것을 막는다 
 2) private static 멤버변수 차원에서 클래스 로딩시점에 자신의 생성자를 이용해 객체를 생성하고 주소값을 저장한다 
  ( 현 객체의 주소값은 static 영역( meta-space or class area ) 에 저장하게 된다 ) 
 3) public static 메서드로 한번 만든 객체의 주소값을 외부에서 사용하도록 반환해주도록 정의한다  
 

package test.pattern;

class Company {
	private static Company instance = new Company();
	private String comInfo = "회사정보";

	private Company() {
		System.out.println("Company 객체 생성");
	}

	public static Company getInstace() {
		return instance;
	}

	public String getComInfo() {
		return comInfo;
	}
}

public class TestSingleton {
	public static void main(String[] args) {
		// Company c = new Company();
		// System.out.println(c.getComInfo());

		System.out.println(Company.getInstace());
		System.out.println(Company.getInstace());
		System.out.println(Company.getInstace().getComInfo());
	}
}
public class ProductDAO {
	private String driver = "oracle.jdbc.OracleDriver";
	private String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
	private String user = "scott";
	private String pass = "tiger";
	// 2. 스테틱을 이용해 new
	private static ProductDAO instance = new ProductDAO();

	// 1.private 생성자 만들기
	private ProductDAO() {
	}

	// 3. instance를 가져다 쓸 메소드 선언
	public static ProductDAO getInstance() {
		return instance;
	}
}
반응형

'[IT] > java' 카테고리의 다른 글

java.요청url  (0) 2021.04.19
java.동적 객체 생성 및 메소드 실행  (0) 2021.04.19
java.DisignPattern.Front Controller Pattern  (0) 2021.04.16
java.mvc.member  (0) 2021.04.14
java.web.model2.mvc.redirect  (0) 2021.04.14
java.web.model2.mvc.forward  (0) 2021.04.13
java.web.model2.mvc.forword/redirect  (0) 2021.04.12
java.web.model2.mvc  (0) 2021.04.12
Comments