본문 바로가기
카테고리 없음

[OOAD] Design model Visibility(가시성) 정의하기

by Warehaus 2022. 8. 10.

 

Visibility


하나의 오브젝트가 다른 오브젝트를 갖고나 볼 수 있는 능력

- 메시지를 보내는 sender object가 메시지를 받는 receiver object를 볼 수 있는 능력을 의미한다.

 

 

Visibility의 유형


Visibility 유형은 크게 4가지 입니다.

 

1. Attribute visibility

2. Parameter visibility

3. Local visibility

4. Global visibility

 

 

Attribute visibility

A, B 관계에서 B가 A의 속성인 경우, A는 B에 attribute visibility 를 가집니다.

 

Parameter visibility

A에서 사용하는 메서드에 B가 파라미터로 전달될 때, A는 B에 Parameter visibility를 갖습니다.

 

Local visibility

A의 메서드 안에서 B가 지역 변수, local object 로 사용되는 경우, A는 B에 Local visibility 를 갖습니다.

 

Local visibility 를 갖는 경우는 두 가지로 나뉩니다.

 

1. 지역 변수에 새로운 인스턴스를 생성하는 경우

2. 함수호출 후 리턴으로 생성 된 인스턴스를 할당 받는 경우.

 

Global visibility

B가 전역적 가시성을 가진 경우 B는 Global visibility를 갖습니다.

C++에서는 인스턴스를 global variable에 할당하는 것이 가능하지만, Java에서는 불가합니다.