[디자인 모델] 향 원 모델 소개 (정의 | 대상 풀 | 내부 상태 | 외부 상태 | 적용 장면 | 관련 캐릭터)

5146 단어 디자인 모드
글 목록
  • I. 향 원 모드 소개
  • II. 향 원 모드 내부 상태 와 외부 상태
  • III. 향 원 모드 적용 장면
  • IV. 향 원 모드 의 장단 점
  • V. 향 원 모드 관련 모드
  • VI. 향 원 모드 관련 캐릭터
  • I. 향 원 모드 안내
    1. 향 원 모드 소개: 향 원 모드 의 핵심 은 대상 풀 입 니 다. 대상 을 사용 할 때 대상 풀 에서 대상 을 가 져 옵 니 다. 대상 풀 에 없 으 면 하 나 를 만 들 고 대상 풀 에 넣 은 다음 에 대상 풀 에서 가 져 옵 니 다.(대상 풀 에서 만 대상 을 가 져 올 수 있 고 스스로 만 들 수 없습니다)
    ① 디자인 모델 유형: 구조 성;
    ② 향 원 모델 개념: 생 성 대상 의 수량 을 줄 이 고 응용 에서 사용 하 는 대상 의 구 조 를 개선 하 며 공유 대상 (대상 풀 의 대상) 을 사용 하여 여러 개의 입자 대상 (사용 시의 대량의 대상) 을 지원 합 니 다.
    ③ 장점: 생 성 대상 의 수량 을 줄 이 고 메모리 의 점용 을 줄 이 며 성능 을 향상 시킨다.
    2. 입자 대상 과 공유 대상: 프로그램의 성능 을 향상 시 키 기 위해 서 입 니 다.
    ① 입자 도 대상: 메모리 의 수량 이 많은 대상 이다.실제 사용 하 는 수량 이 많은 대상;
    ② 공유 대상: 여러 개의 입자 대상 이 공유 하 는 일부 데이터;대상 캐 시 탱크 에 저 장 된 대상;
    ③ 예 를 들 어 설명: 문자열 값 'abc' 를 사용 하여 처음으로 사용 하고 이 문자열 을 만 들 고 문자열 캐 시 풀 에 넣 습 니 다. 이 캐 시 풀 의 문자열 은 '공유 대상' 입 니 다. 응용 프로그램 에서 'abc' 문자열 을 대량으로 사용 해 야 합 니 다. 예 를 들 어 10 만 개의 'abc' 문자열 대상 을 사용 해 야 합 니 다. 이 10 만 개의 문자열 대상 은 '세분 화 대상' 입 니 다.이 때 는 이렇게 많은 대상 을 만 들 지 않 을 것 입 니 다. 이 10 만 개의 대상 이 사용 할 때 문자열 캐 시 풀 에서 캐 시 된 '공유 대상' 을 찾 으 면 메모리 비용 을 많이 절약 할 수 있 습 니 다.
    3. 향 원 모드 예시: 자바 의 String 유형 은 향 원 모드 의 디자인 모델 을 사용 한 것 이다.
    ① 정의 문자열: String str = "Hello" ;② 메모리 에 이 문자열 이 있 습 니 다. 이전에 이 문자열 이 있 었 다 면 문자열 캐 시 풀 에 있 는 문자열 을 되 돌려 줍 니 다.
    ③ 새 문자열: 메모리 에 이 문자열 이 없 으 면 새 문자열 을 만들어 캐 시 풀 에 넣 습 니 다.
    향 원 모드 는 바로 탱크 기술 이다. 예 를 들 어 문자열 탱크, 데이터베이스 연결 탱크 등 이다.대상 을 사용 할 때 연못 에서 먼저 찾 아 보고 이 대상 을 찾 지 못 한 다음 대상 연못 에 넣는다.
    4. 향 원 모드 사용 정책: 사용자 가 대상 을 호출 하고 대상 풀 에서 찾 으 려 고 합 니 다. 대상 풀 에 대상 이 있 으 면 이 대상 을 직접 사용 합 니 다. 없 으 면 이 대상 을 만 들 고 대상 풀 에 넣 은 다음 대상 풀 에서 이 대상 을 가 져 옵 니 다.
    대상 대비: 여기 서 문제 가 있 습 니 다. 대상 풀 의 대상 이 사용자 가 사용 하고 자 하 는 대상 인지 아 닌 지 어떻게 확인 합 니까?
    5. 내부 상태 와 외부 상 태 를 도입 한다. 대상 비교 문 제 는 이 두 가지 개념 을 도입 한다. 대상 에 많은 데이터 가 있 으 면 어떤 데 이 터 를 사용 하여 두 대상 이 일치 하 는 지 확인 하고 여 기 는 대상 의 외부 상 태 를 사용 하여 확인한다.
    ① 내부 상태: 대상 의 내부 상 태 는 대상 대비 의 근거 로 할 수 없고 모든 대상 의 내부 상 태 는 똑 같은 데이터 이다.
    ② 외부 상태: 대상 의 외부 상 태 는 각각 다 르 고 대상 마다 유일한 외부 상태 값 이 있 으 며 신분증, 해시 코드 와 같은 정보 가 있다.
    ③ 신분 표지: 온라인 코스 에서 외부 상태 정 보 를 사용 하고 한 대상 을 유일 하 게 확정 하 며 대상 으로 하 는 표지 정보;
    II. 향 원 모드 내부 상태 와 외부 상태
    1. 개념 도입: 이 두 개념 을 구분 하 는 목적 은 향 원 모델 의 대상 풀 을 유지 하기 위해 서 입 니 다. 사용자 가 특정한 대상 을 사용 하려 고 할 때 대상 풀 의 대상 이 사용자 가 호출 하고 자 하 는 대상 인지 확인 하 는 것 입 니 다. 여기 서 데이터 가 비교 되 어야 합 니 다. 데 이 터 는 사용자 가 원 하 는 대상 이 고 데이터 가 일치 하지 않 으 면 새로운 대상 을 만들어 야 합 니 다.대상 풀 에 넣 기;
    ① 내부 상태: 일부 데이터 의 모든 대상 이 똑 같 기 때문에 대상 의 일치 성 대비 의 근거 로 삼 을 수 없다. 이것 이 바로 내부 상태 이다.
    ② 외부 상태: 일부 데 이 터 는 대상 마다 다 릅 니 다. 이 데이터 에 따라 대상 의 유일 성 을 확인 하고 해시 코드, 신분증 번호, 파일 번호 와 같은 데이터 에 해당 합 니 다. 이것 이 바로 외부 상태 입 니 다.
    내부 상태 와 외부 상 태 는 본질 적 으로 정보 데이터 이다.
    2. 내부 상태 (정보 공유): 메타 모드 의 대상 에서 환경 변화 에 따라 달라 지지 않 는 정보;
    ① 정보 공유: 내부 상 태 는 공유 할 수 있 는 정보 이다.
    ② 저장 위치: 이 정 보 는 향 원 대상 내부 에 저장 된다.
    ③ 저장 형식: 이 정 보 는 대상 의 추가 데이터 로 서 구체 적 인 대상 에 저장 되 지 않 고 여러 대상 에 의 해 공유 된다.
    3. 외부 상태 (정보 공유 불가): 외부 환경 이 바 뀌 면서 대상 내부 가 바 뀌 면 이 부분 은 공유 할 수 없습니다.
    공유 할 수 없습니다: 외부 상 태 는 공유 할 수 없습니다. 모든 값 은 서로 다른 대상 에서 유지 해 야 합 니 다.
    III. 향 원 모드 적용 필드
    1. 향 원 모드 적용 필드:
    ① 바 텀 개발: 특정한 시스템 의 바 텀 개발 은 성능 에 대한 요구 가 비교적 높 고 향 원 모델 을 사용 할 수 있다.
    ② 버퍼: 시스템 에서 인 스 턴 스 대상 의 수량 이 많 고 버퍼 가 이 대상 을 처리 해 야 합 니 다.
    2. 향 원 모드 의 사용 전제: 시스템 에 대량의 대상 이 존재 하 는데 이런 대상 의 상 태 는 대부분 기능 을 외부 화 할 수 있 고 이런 기능 을 추출 하여 메모리 에 한 부 만 보존 할 수 있다.
    ① 분리 대상 기능: 시스템 에 대량의 대상 이 있 으 면 넘 칠 수 있 고 이 대상 들 의 똑 같은 부분 을 분리 할 수 있 습 니 다.
    ② 사용자 호출 행위: 같은 업무 요청 이 있 으 면 메모리 에 있 는 대상 을 우선 사용 하여 처리 하고 같은 대상 을 대량으로 사용 하지 않도록 합 니 다.
    ③ 메모: 메모리 에 같은 대상 이 대량으로 있 을 때 만 메타 모드 를 고려 합 니 다. 메모리 에 있 는 대상 의 수량 이 적 으 면 이 모드 를 사용 할 필요 가 없습니다.
    IV. 향 원 모드 의 장단 점
    1. 향 원 모드 의 장점:
    ① 메모리 사용량 감소: 메모리 에 대상 을 만 드 는 수량 을 줄 이 고 메모리 를 절약 하 며 효율 을 높 인 다.
    ② 대상 생 성 비용 감소: 대상 을 만 들 때 new 작업 과 같은 일정한 비용 을 차지 해 야 합 니 다.구조 함수 에 접근 파일, 데이터 베이스, 네트워크 등 작업 이 있 을 수도 있 고 이런 비용 도 피 할 수 있 습 니 다.
    2. 향 원 모드 단점:
    ① 스 레 드 안전 문제: 클래스 에서 성능 을 추구 하기 위해 보통 HashMap, Array List 등 데 이 터 를 사용 하 는데 이런 데이터 구 조 는 모두 스 레 드 가 안전 하지 않다.HashTable 을 사용 하면 벡터 스 레 드 가 안전 하지만 성능 이 많이 떨 어 집 니 다.절충 은 Concurrent HashMap 등 concurrent 가방 의 집합 을 사용 합 니 다.
    ② 복잡성 증가: 한 종 류 를 여러 종류 로 분해 하면 시스템 의 복잡성 이 증가 할 것 이다.
    V. 향 원 모드 관련 모드
    1. 향원 모델 과 대리 모델: 대리 모델 은 특정한 종 류 를 대리 해 야 한다. 이런 종 류 를 생 성 하 는 데 비교적 많은 자원 과 시간 이 필요 하고 향원 모델 을 사용 하여 처리 속 도 를 높 일 수 있다.
    2. 향 원 모드 와 단일 모드: 용기 단일 모드, 재 활용 대상;
    VI. 향 원 모드 관련 캐릭터
    1. 추상 적 인 향원 역할: 추상 적 인 유형 으로 그 중에서 내부 대상, 외부 대상, 추상 적 인 행 위 를 정의 했다.
    ① 내부 대상: 향 원 모델 에서 이런 데이터 에 관심 이 없다.
    ② 외부 대상: 이 값 은 한 번 만 설정 할 수 있 고 두 번 의 할당 이 불가능 하 며 그렇지 않 으 면 대상 풀 관리 가 혼 란 스 러 울 수 있 습 니 다.일반적으로 final 형식 으로 설정 하고 구조 함수 에 값 을 부여 합 니 다.
    ③ 추상 적 인 행위: 이것 은 고객 이 호출 하 는 방법 이다.
    고객 이 향 원 모델 을 사용 할 때 만 든 대상 은 추상 적 인 향 원 역할 대상 이 고 추상 적 인 행 위 를 호출 하 는 것 이다.향 원 공장 을 관리 할 때 추상 적 인 향 원 역할 대상 도 관리한다.
    2. 구체 적 인 향원 역할: 구조 함수 에서 외부 상 태 를 설정 하여 자신의 업무 논 리 를 실현 한다.
    3. 향 원 공장 역할: 향 원 공장 에서 대상 풀 을 유지 하고 사용자 가 향 원 대상 을 호출 할 때 대상 풀 에서 이 대상 을 얻 습 니 다. 만약 에 얻 지 못 하면 새로운 향 원 대상 을 만 들 고 대상 풀 에 넣 고 이 대상 을 되 돌려 줍 니 다.
    4. 사용자 호출: 사용자 가 원 류 를 추상 적 으로 누 리 는 대상 을 설명 하고 그 정의 의 추상 적 인 행 위 를 호출 합 니 다.

    좋은 웹페이지 즐겨찾기