디자인 패턴D08

최성진·2023년 2월 2일
0

Java

목록 보기
22/32

디자인 패턴

1. 디자인패턴이란?

  • 디자인 패턴이란 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어갈 것인가에 대한 일종의 솔루션 같은것 이다.
  • 디자인 패턴은 설계자들이 "올바른" 설계를 "빠르게" 만들 수 있도록 도와준다.

2. Singleton 패턴

  • 프로그램 내의 여러 곳에서 반복적으로 사용 되어야 하는 객체에 대해 전역적인 범위를 갖도록 객체를 생성하고, 이 객체를 여러 곳에서 공유하기 위한 클래스 작성 패턴
  • 이러한 패턴을 통해 생성된 객체를 싱글톤 객체라고 한다.

3. Singleton 객체의 이점

  • 프로그램의 전역에서 활용할 재료로 사용되는 공유 기능을 하나만 생성하여 여러 곳에서 재사용 함으로써 메모리를 효율적으로 사용할 수 있다.
  • 단 한번만 객체를 생성하면 다시 객체를 생성할 필요가 없기 때문에, 해당 기능을 사용할 때마다 객체를 일일이 생성해야하는 번거로움을 피할 수 있다.

  • static이 적용된 자원은 메모리의 고정역역에 생성되기 때문에, 클래스 자체의 객체나, 그안에서 포함된 멤버변수, 메서드와는 메모리 상에서 구별된다고 볼 수 있다.
  • 그러므로 Calc 클래스 안에 static 형태로 Calc 클래스의 객체를 정의하더라도 코드상의 논리적인 연관관계를 위해 하나의 파일에서 정의하는 것 일뿐, 실제로는 Calc클래 자체에서독립된 객체가 되는 것이다.
  • Calc 클래스 이외의 여러 곳에서 new 연산자를 사용하여 객체 할당이 가능하다면 Singleton이라는 개념 자체가 성립되지 않으므로, 외부에서 이 객체를 직접적인 접근을 못하도록 은닉시킨다.

싱글톤 코드

private static 클래스이름 current;
	

	public static 클래스이름 getInstance() {
		if (current == null) {
			current = new 클래스이름();
		}
		return current;
	}
	
		
		public static void freeInstance() {
			current = null;
		}
		

		 private 클래스이름() {}

tip. 싱글톤에서 객체를 선언하는게 낫다
변수를 선언해야하는 경우는 상수를 선언하는게 낫다.
변수는 선언할수있지만 잘 하지 않는다. 안한는게 낫다

profile
마부리입니다

0개의 댓글