반응형

객체란,

데이터와 그거에 따른 행동(연산)을 담고 있다.
해당 객체를 생성한다는 거는,  그 데이터와 행동 (데이터 사이의 인터랙션)을 만든다는 걸 의미한다.

이 데이터를 다른 객체들의 상호작용은 아래와 같이 묘사될 수 있다.

[객체] <-> [객체] <-> [객체] 상호작용

사실 이런식으로는 객체가 한번 할당되면, 
중간에 있는 데이터는 계속 유지가 된다.

그리고 멀티스레드가 아닌 이상,
계속 한가지의 흐름밖에 생기지 않는다. (하나의 선)

그 하나의 선은 메인 프로세스가 된다.

 

객체 간의 통신은 어떻게 이루어지는가?  (하나의 프로세스에서)

1. 메소드를 호출함으로써 (매개변수로 객체 넣음)  (디펜던시 발생)

모듈 관점에서
아래와 같이 통신할 수 있다. 이럴 때 커플링은 아래와 같다.
b.process(a)    process(A a) {a.member++;}

a.process(b)    process(B b) {b.member++;}

 

아래와 같이 메서드를 직접 호출해서 통신할 수 있다.

b.notify(a)    notify(A a) {a.action();}

a.notify(b)    notify(B b) {b.action();}

 

2. 메소드를 호출함으로써 (생성자에 객체를 넣음)  (디펜던시 발생)

생성자에 객체를 넣고.

B b = new B(a);

b.process()    {a.process();}

 

 

3. 메서드를 호출함으로써 (상속 받음) (오버라이딩)

 

 

반응형