보키_기록용
[UML 실전에서는 이것만 쓴다 :: 3장] 클래스 다이어그램 본문
- 클래스
- 표기
- 접근 제한자 [private : (-) / protected : (#) / public : (+)]
- 변수 [변수이름 : 자료형]
- 메서드 [함수이름 (파라미터이름 : 파라미터 자료형) : 반환값 자료형]
- 세부사항을 상세하게 적는 것이 유용할 때도 있지만, 자주 이렇게 해서는 안 된다.
ex )
public class Dialer
{
private Vector digits;
int nDigits;
public void digit (int n);
protected boolean recordDigit (int n);
}
- 연관
public class Phone
{
private Button itsButtons[15];
}
- Phone 객체에 Button 객체가 15개 연결되어 있다.
public class Phonebook
{
private Vector itsPnos;
}
- Phonebook은 여러 개의(*) 전화번호 객체와 연결되어 있다.
- 벡터(Vector)나 리스트(List) 또는 다른 컨테이너 타입으로 구현하는 경우가 종종 있다.
- 상속
public class Employee
{
...
}
public class SalariedEmployee extends Employee
{
...
}
- 점선으로 그리지만 여기서는 상속은 세로 화살표, 연관은 가로 화살표로 그린다.
- 세부사항
- 클래스 스테레오 타입
- 《interface》
- 클래스의 메서드가 모두 추상 메서드.
- 인스턴트 변수를 가지지 못하고 정적(static) 변수만 가질 수 있다.
- 《utility》
- 모든 메서드와 변수가 정적(static)이다.
- 《interface》
- 추상 클래스
- 이름을 이탤릭체로 적거나 {abstract} 프로퍼티(클래스 이름 오른쪽 아래에 작성)를 사용한다.
- 약어를 쓰는게 훨씬 편함
- 프로퍼티
- 클래스에 속하지 않는 추가 정보
- {이름1=값1, 이름2=값2, ...}
- 값을 가지지 않는다면 참(true)을 가지는 것으로 간주. ex ) {abstract}와 {abstract = true}는 같은 뜻
- 클래스 이름 오른쪽 아래에 작성
- 집합 (aggregation)
- 부분/전체 관계를 내포하는 연관의 특별한 형태
- UML 2.0에선 빠졌음.
- 합성 (composition)
- 집합의 특별한 형태. 집합과 동일한 규칙이 적용
- 피보호자의 한 인스턴스를 두 주인이 동시에 소유할 수 없음
- 주인은 피보호자의 수명 전체에 책임을 진다. (주인이 소멸/복사되면, 피보호자도 함께 소멸/복사되어야 한다.)
- 자바에서는 가비지컬렉터가 수행되므로 어떤 객체의 수명을 관리할 필요는 없다.
- 다수성 (multiplicity)
- 배열이나 벡터, 같은 종류의 객체라도 배열이 아니라 여러 인스턴스 변수에 따로 가질 수 있는 상황에 쓰임
- ex ) 3..5 (3개에서 5개까지) / 0..* (0개 또는 그 이상)
public class BinaryTreeNode
{
private BinaryTreeNode leftNode;
private BinaryTreeNode rightNode;
}
- 연관 스테레오 타입
- 《create》
- 연관의 원본이 연관의 대상을 생성함.
- 대상을 생성해 다른 부분에 넘긴다.
- 《local》
- 대상을 생성하고 지역 변수에 담긴다.
- 멤버 변수 안에 한정됨. 다른 부분에 전달되지 않음.
- 《parameter》
- 원본이 대상에 접근할 수 있게 된다.
- 그 멤버 함수가 리턴한 이후 그 객체에 대해 모두 잊는다.
- 대상이 원본 클래스의 인스턴스 변수에 저장되지 않는다.
- 점선으로도 씀
- 《delegate》
- 원본 클래스의 멤버 함수가 호출될 때 이 호출을 대상 클래스에 그대로 전달해서 대상 클래스의 멤버 함수를 호출하는 경우에 사용
- 프록시(Proxy), 데코레이터(Decorator), 컴포지트(Composite)
- 《create》
- 내부 클래스
- 익명 내부 클래스
- 연관 클래스
public class Address {
private Vector itsLine;
};
- 연관 한정사 (association qualifier)
- 일반적인 자바 참조가 아니라 어떤 종류의 키나 토큰을 통해 연관을 구현할 경우 사용
'공부 > UML' 카테고리의 다른 글
[UML 실전에서는 이것만 쓴다 :: 5장] 유스케이스 (0) | 2022.10.30 |
---|---|
[UML 실전에서는 이것만 쓴다 :: 4장] 시퀀스 다이어그램 (0) | 2022.10.30 |
[UML 실전에서는 이것만 쓴다 :: 2장] 다이어그램으로 작업하기 (0) | 2022.08.22 |
[UML 실전에서는 이것만 쓴다 :: 1장] 이 책의 개요 (0) | 2022.08.21 |
Comments