문제

난을 피하려고 만들기 몬스터 클래스, 고 나는 이렇게 좋은 패턴과 호기심이었다면 사람이 어떤 통찰력으로 이 문제를 해결합니다.

문제

A 복잡합니다.을 피하는"하나님 개체",일부 논리 밖으로 밀려로 BC.

지금으로 제공 외관.에 따라 달라 B and C.

A -> B
  -> C

그러나 구성되는 데이터 B 및 C 필요합니다.그래서 우리는 우리가 유지하는 데이터 동기화합니다.

b.value1 = a.value1
b.value2 = a.value2

c.value1 = a.value1
c.value2 = a.value2

또한,B 및 C 해야 합 데이터를 변환하여 그것을 사용합니다.

b.sum -> b.value1 + b.value2
b.doSomething -> b.sum() ...

c.sum -> c.value1 + c.value2
c.doSomethingElse -> c.sum() ...

작성을 피하기 위해 중복되는 코드,이러한 전환 방법을 다시 A.

a.sum -> a.value1 + a.value2

b.doSomething -> a.sum() ...
c.doSomethingElse -> a.sum() ...

하지만 이 B C 이에 따라,단지 그것의 데이터입니다.

A -> B -> A
  -> C -> A

이 결과에 원형을 의미할 수 있습니다.

나는 공부를 종속 사출 및 공장 패턴,그리고 이러한 두 가지 아이디어로 해결 많은 문제지만,나는 상황을 만드는 방법 체 그래프 는 노드가 구성할 수 있습니다.즉,필요 기능을 변경하는 행동의 특정 노드의 그룹에서 노드를 런타임이다.최선의 방법은 무엇일 전파하는 구성 상태로 개체 그래프?

편집

는 마지막 몇 시간을 수립하려고 내 생각으로 질문을 수 있다고 생각으로 비틀거리 솔루션입니다.나는 생각이 무엇이 필요를 만들어 구성 업체 클래스 D 을 얻으로 전달하는 노드에 달려 있습니다.

A -> B -> D
  -> C -> D
  -> D

D 관리 value1value2 제공하는 sum 방법입니다.D 도할 때 발생하는 이벤트를 value1 고 값 2 도록 변경 따라 노드들(A,B 및 C)에 대응할 수 있습니다.

내가 생각하는 이 솔루션을 작동,그리고 포스트가 어쨌든 경우에 있는 더 나은 솔루션입니다.이 패턴 내가 찾는 것,그것은 무엇이라고?"제공자"패턴?(와 혼동하지 ASP.NET ko 공급자의 모델!)

도움이 되었습니까?

해결책

당신은 당신을 찾는 관찰자는 중재자는 패턴이 있습니다.에 체크 아웃 http://sourcemaking.com/design_patterns/observer

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top