비디오: StarUml PHP 홈페이지 제작하기 1 Object Oriented Web Site Publishing 1 2024
객체를 카테고리로 분류하고 카테고리를 하위 카테고리로 구성하는 것은 자연스러운 일입니다. 살 곳을 찾으면 집, 아파트, 타운 하우스, 콘도미니엄, 맨션 등과 같은 주거 단위를 범주화하는 것을 알 수 있습니다. 주택은 목장, 분리 층, 식민지 및 소금 상자와 같은 스타일로 차례로 정리할 수 있습니다. UML은 이러한 유형의 분류 (일반화 및 전문화라고도 함)를 포착하여 모델러 및 프로그래머로 사용하는 표기법을 제공합니다.
수퍼 클래스라는보다 일반적인 클래스에 배치합니다. 공통 기능을 공유하는 클래스는 수퍼 클래스의 서브 클래스 로 알려져 있습니다. 예를 들어, 비디오 테이프, 오디오 테이프, 콤팩트 디스크 또는 영화 필름에 기록 된 자료의 길이는 기록 된 모든 4 가지 종류의 매체의 속성입니다. 이 클래스는 물리적 인 크기와 각 레코드를 만드는 데 사용 된 날짜와 같은 다른 속성도 공유 할 수 있습니다. 이 경우 수퍼 클래스 는 RecordedMedia, 하위 클래스는 Videotape, Audiotape, CompactDisc 및 MovieFilm이고 일부 공유 속성에는 recordedLength 및 totalLength가 포함될 수 있습니다. 예를 들어, recordLength 속성을 RecordedMedia라는보다 일반적인 클래스로 일반화합니다. UML로 일반화를 보여주는 프로세스는 간단합니다:
1. 서브 클래스를 식별하십시오. 동일한 속성 및 / 또는 작업을 가진 클래스를 찾습니다. 이 클래스는 서브 클래스입니다. 2. 수퍼 클래스를 만듭니다. 서브 클래스의 공통 속성 및 / 또는 연산을 유지하기위한 수퍼 클래스를 제공한다. 수퍼 클래스에 모든 서브 클래스를 분류하는 이름을 지정하십시오. 슈퍼 클래스를 다이어그램의 하위 클래스 위에 배치하면 읽기 쉽지만 필수는 아닙니다.)
3. 수퍼 클래스에 공통 기능을 추가하십시오.
공통 속성과 조작을 서브 클래스에서 제거하고 수퍼 클래스에 배치하십시오 (한 번). 4. 일반화 관계를 그립니다.
각 하위 클래스에서 수퍼 클래스로 일반화 선을 그립니다. UML에서 일반화 선은 수퍼 클래스 끝에서 빈 화살촉이있는 실선으로 표시됩니다. UML에서 서브 클래스와 수퍼 클래스를 연결하는 빈 화살촉이있는 라인을 일반화 관계라고합니다.
속성 및 연산과 같은 공통 기능을 사용하여 수퍼 클래스를 만든 후 하위 클래스
는 수퍼 클래스의 해당 기능을 상속받습니다. 이 방법을 사용하면 각 서브 클래스에서 여러 번 사용하지 않고 공통 기능을 슈퍼 클래스에 한 번만 작성하면됩니다.
당신은 (또는 다른 사람들이) 수업 간의 관계를 설명 할 때 사용하는 언어를 보면서 일반화가 가능한지 여부를 알 수 있습니다. 이 섹션의 앞부분에있는 비디오 테이프와 같은 다양한 종류의 녹화 된 미디어를 설명 할 때 "4 가지 종류의 녹화 된 미디어"라는 문구가 나타났습니다. "종류"또는 "유형"과 같은 문구를 사용하여 자신을 찾으면 기회가 일반화되어 있습니다.
귀하의 고객 중 한 명이 자료실에 자료를 보관하는 것에 관심이 있다고 가정 해보십시오. 이 고객은 비디오 테이프 및 오디오 테이프와 같이
종류의
종류의 기록 매체를 축적 해 왔습니다. 모델러로서 이러한 미디어와 그 유사점의 차이점을 포착해야합니다. 그림 1의 다이어그램은 상속 계층 구조로 배열 된 몇 가지 일반화의 시작을 보여줍니다. 그림 1:
단순 상속 계층 구조. 개발자는 일반화 또는 상속이라는 용어를 사용하여 수퍼 클래스에 표시하고 하위 클래스에서 재사용하는 공유 속성 및 작업을 재사용하는 것과 동일한 개념을 참조합니다. 일반화 란 구체 (서브 클래스)에서 일반 (슈퍼 클래스)까지 일반화하는 개념을 의미합니다. 상속은 하위 클래스에 대한 일반화의 효과를 나타냅니다.
클래스 들간에 일반화 된 관계를 볼 때, 그 의미는 클래스들 사이의 연관 관계 들과는 매우 다르다. 연관은 궁극적으로 많은 객체 간의 관계입니다.
- 한 클래스의 일부 인스턴스는 다른 클래스의 인스턴스와의 관계 (링크)를가집니다. 클래스
간의 일반화 관계에서 관계는 실제로 클래스에 관한 것입니다. 당신이 말할 수있는 가장 좋은 점은 서브 클래스에서 생성 된 객체는 서브 클래스와 수퍼 클래스의 모든 기능을 포함한다는 것입니다.
당신은 일반화 관계에있는 한 클래스의 객체 하나만 가지고 있습니다. 하위 클래스와 수퍼 클래스의 두 클래스를 표시하더라도 하나의 객체 만 만들 수 있습니다. 상속 때문에 Videotape 클래스의 객체가 RecordedMedia 클래스의 객체라고 생각할 수도 있습니다. 그림 2는 모든 속성을 가진 Videotape 클래스에서 생성 된 객체를 보여줍니다.(클래스의 인스턴스는 객체 심볼로 나타납니다.) 두 개의 서로 다른 객체 (하나는 RecordedMedia, 다른 하나는 비디오 테이프)가 아니라 하나의 객체입니다. vtu83-1023 오브젝트가 작성되면 모든 속성 값이 설정됩니다. 테이프 녹음은 57 분입니다. 실제 테이프의 전체 길이는 60 분입니다. 테이프는 높이가 10 인치, 너비가 7 인치, 깊이가 1.5 인치 인 Umatic 비디오 카세트입니다. 녹음은 아날로그이며 테이프 내용에 대한 로그가 기록 보관 인이 참조 할 수 있도록 테이프에 첨부됩니다. 그림 2: 상속 된 모든 속성을 보여주는 인스턴스. 하위 클래스와 상위 클래스로 정의 된 인스턴스는 하나뿐입니다. 서브 클래스와 수퍼 클래스는 인스턴스를 생성하기위한 생성자 연산과 인스턴스를 파기하는 소멸자 연산을 가질 수 있습니다. 소프트웨어가 실행될 때 하위 클래스의 인스턴스를 만들면 먼저 수퍼 클래스의 생성자가 실행 된 다음 하위 클래스의 생성자가 실행됩니다. 생성 한 인스턴스를 제거 할 시간이되면 하위 클래스의 소멸자가 먼저 호출되고 그 다음에 수퍼 클래스의 소멸자가 호출됩니다. 하위 클래스의 하위 클래스가 있기 때문에 상황이 더 복잡해지면 기억하십시오. 생성자는 상속 계층 구조의 맨 위에서 아래쪽으로 호출됩니다. 소멸자는 하위 서브 클래스에서 상위 수퍼 클래스 순으로 호출됩니다.