일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- HTML
- Ajax
- 도커
- EC2
- 비트코인
- 암호화
- docker
- express
- node.js
- jQuery
- tiles.xml
- model1
- 웹게임
- JavaScript
- Servlet
- websocket
- 블록체인
- autowired
- Spring
- 배포
- 웹소켓
- JSP
- phaser
- PL/SQL
- CSS
- SQL
- 알고리즘
- Cookie
- RDS
- AWS
- Today
- Total
記錄
UML(Class Diagram) 본문
Class Diagram 관계도
※ reference를 계속 유지하고 있는지 ?
멤버 필드로 클래스 변수를 만들어서 계속 참조를 하고 있는지의 여부이다.
즉, 메소드의 파라미터에 넣거나 메소드 런타임중 생성되고 바로 종료되는 것처럼 참조를 계속 유지하지 않는 경우는 '의존관계'이며 반대로 참조를 계속 유지하는 경우는 연관관계로 분류된다.
멤버필드가 선언을 하든 new를 하든 멤버필드로 존재하면 참조를 계속 유지하고 있게 되므로 연관 관계가 된다. 화살표 방향의 구분은 '참조하고 있는 방향'의 기준으로 판단하면 쉽다. 바라보고 있는 것, 참조하고 있는 것 이런 의미이다.
A 클래스는 B 클래스에 의존한다
= A 클래스가 구동하려면 B 클래스가 필요하다
※ 전체와 부분의 관계인지 ?
사실 이 부분은 특수연관과 구분이 좀 모호한 측면이 있다. 쉽게 이해하기 위해서 일반 연관을 무방향, 단방향, 양방향 이렇게 세 경우의 수로 나눌 수 있다.
무방향은 대등한 수준의 클라스에서 한 클라스가 다른 클라스를 ArryList의 Generic으로 설정하는 것과 같은 경우가 해당된다.
단방향은 한 클라스가 다른 클라스를 내부에서 클래스 변수를 만들어 멤버필드로 참조를 설정하는 경우가 해당된다.
양방향은 단방향의 방식을 서로 취하고 있는 경우가 해당된다.
※ life cycle이 같은지 ?
클래스 내에서 참조변수를 선언만 하는 경우 집합 연관에 해당하고 선언 후 new 를 통해 힙에 할당까지 하는 경우 합성(복합) 연관이라 할 수 있다.
정리하자면 집합 연관은 life cycle을 공유하지 않기 때문에 한 클래스가 없어진다고 해서 다른 클래스가 없어지지 않는다.
반면에 복합 연관은 life cycle을 공유(클래스 내부에서 new가 생성되고 있는 것)하고 있기 때문에 한 클래스가 끝나면 다른 클래스도 없어지게 된다.
'IT_Fundamental > etc' 카테고리의 다른 글
script에서 request에 parameter 설정 (0) | 2018.04.13 |
---|---|
Model1 vs Model2 (간단히) (0) | 2018.03.30 |
Setting (0) | 2018.03.27 |
컴퓨터의 4 가지 메모리 (0) | 2017.12.20 |
CodeBlocks(코드블록) 테마변경 (0) | 2017.12.15 |