일렬 설계 모드

디자인 모드
일렬 설계 모드
단일 열 모드 를 사 용 했 는 지 어떻게 구분 합 니까?
Runtime 클래스 는 일렬 입 니 다.
주의:
1. 구조 방법 이 없 는 것 은 이 클래스 가 대상 을 만 들 수 없다 는 것 을 의미한다.
2. 안에 있 는 방법 이 모두 정적 이라는 것 을 의미한다!!
3. 만약 void 방법 이 있다 면, 반드시 static 방법 으로 이러한 대상 을 되 돌려 줍 니 다!!
Runtime 류 를 배 우 는 목적: 단일 모델 이 이러한 유형 에서 의 표현 을 잘 이해 하기 위해 서 입 니 다!!!
Runtime: 구조 적 인 방법 요약 이 없 으 면 대상 을 만 들 수 없다 는 것 을 설명 하고 비정 상 적 인 방법 도 발견 했다. 이 는 이러한 대상 에 게 정적 으로 돌아 가 는 방법 을 제공 해 야 한 다 는 것 을 설명 한다. 그리고 하나 만 있 으 면 Runtime 류 가 단일 디자인 모델 을 사용 했다 는 것 을 설명 한다.
단일 모드 디자인 개술
디자인 모델: 문제 에 대한 효과 적 인 해결 방법 은 사실 일종 의 사상 이다.
단일 사례 (단일 사례) 디자인 모델
해결 하 는 문제: 메모리 에 있 는 대상 의 유일 성 을 보장 할 수 있 습 니 다.
예 를 들 어 여러 프로그램 이 같은 설정 정보 대상 을 사용 할 때 이 대상 의 유일 성 을 확보 해 야 한다.
어떻게 설정 정보의 유일 성 을 보증 합 니까?
1. 다른 프로그램 이 new 로 이러한 대상 을 만 드 는 것 을 허용 하지 않 습 니 다.
2. 이 클래스 에 이 클래스 의 인 스 턴 스 를 만 듭 니 다.
3. 대외 적 으로 다른 프로그램 이 이 대상 을 얻 을 수 있 도록 하 는 방법 을 제공한다.
실현 절차
1. 이러한 구조 함 수 를 민영화
2. new 를 통 해 이 클래스 에 이 클래스 의 대상 을 만 듭 니 다.
3. 공유 하 는 방법 을 정의 하고 만 든 대상 을 되 돌려 줍 니 다.
package     ;

/**
 *       
             ?
  1.        new      。
  2.           。
  3.                    。

 * @author Administrator
 *
 */

/*
 *     :
  1.         
  2.  new            
  3.         ,        。 
 */


class Single {
	//1.new    
	private static Single s = new Single();

	//2.         
	private Single() {
	}

	//3.         ,        
	public static Single getInstance() {
		return s;
	}
}

class SingleDemo {
	public static void main(String[] args) {
		
		Single ss = Single.getInstance();
		System.out.println(ss);
	}
}


굶 주 림 식 과 게으름뱅이 식
package     _        ;


/*       
               ?
  1.        new      。
  2.           。
  3.                    。
*/

/*
 *     :
  1.         
  2.  new          ,  ,    
  3.           ,        。 
 */

//   

//  :        ,     ,          
class Single {
	//1.new    
	private static Single s = new Single();

	//2.         
	private Single() {
	}

	//3.         ,        
	public static Single getInstance() {
		return s;
	}
}

//   
class Single2 {
	//1.new    
	private static Single2 s =null;

	//2.         
	private Single2() {
	}

	//3.         ,        
	public static Single2 getInstance() {
		if (s==null) {
			s = new Single2();
		}
		return s;
	}
}

public class Demo {
	public static void main(String[] args) {
		//     
		Single ss = Single.getInstance();
	}

}

좋은 웹페이지 즐겨찾기