반응형

 

 

 
 

 

A ,B , C,D ... N 개의 객체들간의 통신을 하려고 할때

 

그리고 이것들이 상속구조를 이루고 있다면 통신하기 위해 직접 연결 한다면 상당히 지저분한 상태에 이르고 만다

 

 

그래서 클래스 중계자(mediator) 하나를 둬서 변경 된 사항을 mediator 에게 던지고 적용시킬지니는 mediator 가 수행하는 패턴을

 

mediator 패턴 이라고 한다

 

 

observer 는 옵저버가 중점이고 mediator 는 mediator 가 중점이다

 


 

 

 

그래서 mediator 의 내부는 좀 복잡해 질 수 있고 통신할 것들에 대해 다 알고 있어야 한다

 

 

또한 mediator 와 연결될 다른 객체들도 mediator 를 연결해야 한다

다른 객채들과의 통신을 mediator 와 통신한다

 

 

장점 : 재사용이 쉬워진다 => A 객체만 재사용 하고 싶으면 A 하나 때내고 mediator 부분에서 A 에 대한 부분만 수정해 주면 됨으로

 

분산된 것을 한곳으로 모여줌 N:M 관계를 1:M 관계로 변경

 

차이:

Facade 와 차이점은 Facade는 일반적으로 단방향이지만 Mediator 는 양방향이다

 

차이:

Observer 는 중앙이 아닌 밖의 것이 중점이 된다

 

A 에서 값이 바뀌면 중계 해주는 곳에 A 가 알려주고  중계 해주는 곳이 나머지들에게  A 값이 바뀌었다고 알려주는 형태

 

구성형태는 Oberser 와 Mediator 와 같긴하다

 

 

 

변화 상태는 this 를 멤버함수 인자로 넘겨서 알리는 방법이 있다

 

 

 

활용

 

메신저 대화명 바꿀때

 

if A ,B 가 서로 친구 일때

 

중간 mediator 가 서로 연결된 친구라면 A 에서 대화명을 바꿨을때 바꾼 대화명을  B 에게 알려준다

 

 

또는 B 는 바뀌는게 싫다고 mediator 에게 요청하면 변경사항을 받지 않는 처리도 할 수 있다

 

 

 

기계가 여러대 있을때 기계 서로의 속도 제어등 전체 조정

 

하지만 각각의 기계가 각자 동작하진 않고 중앙관리 형태로 구성이 되야 한다는 것이 Mediator 패턴의 컨셉

 
 

 

반응형

+ Recent posts