단일 모드 학습 노트

1630 단어 디자인 모드
디자인 모델 과 관련 된 약간의 천박한 학습 노트
단일 모드 사상: 메모리 에 대상 이 하나 밖 에 없 음 을 보증 합 니 다.
1. 굶 주 린 사람:
public class Student {
	//     
	private Student() {
	}


	//      
	//               ,   
	//                , private
	private static Student s = new Student();


	//          
	//                ,   
	public static Student getStudent() {
		return s;
	}
}
private static Student s = new Student();

이 말 은 들 어 오 자마자 상 대 를 만 드 는 것 이 마치 집에 돌아 오 자마자 책상 위 에 먹 을 것 이 한 무더기 있 는 것 을 보고 바로 먹 었 는데 마치 '굶 주 린 사람' 같 아서 '굶 주 린 사람 식' 이 라 고 부른다.
2. 게으름뱅이
public class Teacher {
	private Teacher() {
	}

	private static Teacher t = null;

	public synchronized static Teacher getTeacher() {
		// t1,t2,t3
		if (t == null) {
			//t1,t2,t3
			t = new Teacher();
		}
		return t;
	}
}

게으름뱅이 식: 사용 할 때 만 대상 을 만 들 기 때문에 '게으름뱅이 식' 이 라 고 부른다.
개발 용 굶 주 린 한식:
public static Student getStudent() {
		return s;
	}
이 문장 은 원자 성 조작 으로 여러 개의 문장 조작 이 아니 기 때문에 다 중 라인 안전 문제 가 존재 하지 않 는 다)
면접 시 코드 를 쓰 는 것 은 우선 게으름뱅이 식 을 나타 낸다. (문제 가 생 길 수 있 는 단일 모드)
그렇다면 게으름뱅이 식 은 어떤 문제 가 생 길 까?
로 딩 지연  
B. 스 레 드 안전 문 제 는 다 중 스 레 드 환경 에서 코드 중의 t 대상 이 데 이 터 를 공유 하고 여러 개의 문구 가 공유 데 이 터 를 조작 하면 스 레 드 안전 문제 가 발생 할 수 있 기 때 문 입 니 다.그래서 키워드 synchronized 를 넣 어야 돼 요.
jdk 의 Runtime 류 는 바로 하나의 모델 인 굶 주 린 사람의 예 이다.
class Runtime {
  		private Runtime() {}
 		private static Runtime currentRuntime = new Runtime();
  		public static Runtime getRuntime() {
        	return currentRuntime;
    	        }
       }

좋은 웹페이지 즐겨찾기