문제

지도 멤버가있는 클래스가있을 때는 맵 자체를 나타내는 별도의 클래스/인터페이스 객체를 그리고 싶지 않지만 맵을 복잡한 것이 아니라 기본 유형 인 것처럼 취급하는 것을 선호합니다. 물체.

다음 예를 고려하십시오

public class IndexManagerImpl implements IndexManager {
    /* ... */

    private static Map<Searcher, Integer> searcherCache;
}

나는 그 사실을 강조하고 싶습니다 IndexManagerImpl (간접적으로) 참조를 유지합니다 Searcher 인스턴스. 표현이 searcherCache.

도움이 되었습니까?

해결책

Martin에 동의하지 않는다 ... Map은 모든 컴퓨터 졸업 과정에서 배우는 기본 데이터 구조입니다! 그것은 대부분의 현대 언어로 진행되며 분석가에게 중요한 설계 리소스입니다. 일부 상황에서는지도가 연관성으로 그려 질 수 있지만 어떤 종류의 확장 (고정 관념)이 필요하거나 템플릿 클래스를 정의 할 수 있습니다. 나는 템플릿 접근법이 마음에 들지 않습니다. 그것은 주요 플레이어의 협회를 숨 깁니다. 마지막 리소스는 Association Class입니다. Association Class는 속성과 NXN 관계를 정의하는 데 사용되는 특수 UML 클래스 인 Association Class입니다. "Integer"필드는 IndexManager와 관련된 검색 자의 카운터입니다. 또한 코드로 관계의 다른 쪽을 볼 수 없으며 UML은 양측, 탐색 문제 등을 표시하도록 설계되었습니다.

다른 팁

실제로 수집 객체는 두 클래스 사이의 일대일 연관성을 나타냅니다. 따라서 Diagram에 Searcher 클래스와 일대일 연관성이있는 IndexManagerImpl 클래스가 있어야합니다.

맵은 컬렉션과 다른 속성을 가지고 있으므로 컬렉션으로 간주 될 수 없습니다. 실제로 맵은 특정 (매핑) 관계가있는 여러 개의 컬렉션입니다. 내 견해에서지도를 나타내는 것은 요구 사항에 크게 의존하며 요구 사항에 따라 여러 맵 UML 표현이있을 수 있습니다. 따라서 간단한 형태의 맵 관계는 표현 될 수 있으며, 하나 내지 많은 연관성과 키 세트 요소와 하나의 키 요소와 하나의 연관성 요소와의 연관성. 핵심 요소와 값 요소가 원래 요소와 연결되지 않기 때문에 원래 요소로의 포장지 인 경우.

도움이 되었기를 바랍니다....

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top