(Java 멀티쓰레드 디자인 패턴) 0장 UML

<클래스와 계층관계>
abstract클래스(추상클래스)-이름은 기울임체로 적는다
static 필드(클래스필드)-이름에는 밑줄을 그는다
abstract메소드(추상메소드)-기울임체로 적는다
static 메소드(클래스메소드)- 이름에는 밑줄을 긋는다.
인터페이스의 이름도 기울임체로 적는다.


**서브클래스가 슈퍼클래스를 상속 받았을 때 UML에서 서브클래스->슈퍼클래스로 화살표가 향하는 이유는 서브클래스는 슈퍼클래스를 알고 있지만 슈퍼클래스가 항상 서브클래스를 알고 있는 것이 아니기 때문이다.

<인터페이스와 구현>
**구현클래스와 인터페이스와의 관계는 점선이 있는 화살표로 표시한다. 그런 후 인터페이스 클래스 다이어그램에는 <<interface>>를 적는다.


<집합연관(aggregation)>

Color(색), Fruit(과일), Basket(바구니)클래스가 있다.

class Color{//.....}
class Fruit{
  Color color;
}
class Basket{
 Fruit[] fruit;
}


이때, Basket클래스는 Fruit클래스의 fruit필드를 가지며 Fruit클래스는 Color클래스의 color필드를 가지고 있다. 이처럼 [가지고 있는] 관계를 집합 연관(aggregation)이라고 한다.
흰머리 마름모가 붙어있는 실선은 집합 연관을 나타낸다.

<액세스 제어>

+가 붙어있으면 public한 메소드나 필드를 의미하며, -가 붙어있으면 private한 메소드나 필드를 의미하며 #이 붙어있으면 protected한 메소드나 필드를 의미한다.

class Something
{
 private int privateField;
 protected int protectedField;
 public int int publicField;
 private void privateMethid(){}
 protected void protectedMethod(){}
 public void publicMethod(){}
}



<시퀀스 다이어그램>
클래스 다이어그램은 [시간에 의해 변화하지 않는 것(정적인 관계)]을 나타내며
시퀀스 다이어그램은 [시간에 따라 변화하는 것(동적인 관계)]를 나타낸다.







댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기