단일 모드 학습 노트
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;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.