2012-09-28 2 views

답변

1

왜 Observer.update 메서드는 첫 번째 매개 변수에서 Observable을 허용합니까?

observable은 업데이트 호출을 시작하고이 호출에서 자신에 대한 참조를 전달하므로 관찰자는 누가이 호출을하고 있는지 의심 할 여지없이 알 수 있습니다. 관찰자가 여러 관측 값을 한 번에 관찰한다면 어떤 일이 벌어 질 지 상상해보십시오. 이 유형의 매개 변수 전달은이 호출의 소스에 대한 혼동을 제거하는 데 도움이됩니다. Swing ChangeEvent 객체 또는 ActionEvent 객체에서 호출 객체에 대한 참조를 전달하는 것과는 조금 다릅니다.

+0

그러나보기와 모델은 느슨하게 연결되어야하며 그렇지 않아야합니까? 내가보기에 뷰는 내용을 업데이트해야합니다. 누가 전화를 걸고 있는지를 알아내는 것이 아니라 컨트롤러를 보장해야합니다. 내가 틀렸다면 나를 바로 잡아주세요. Observer는 어떤 상황에서 관찰자가 누군지 알아야하지만, 위에서 설명한 MVC에서는 그렇지 않다는 것을 알고 있습니다. –

+1

@Jan : 사람이 전화를 걸지는 않았지만 때로는 알 수 있습니다. 뷰는 거의 항상 매우 느슨하게 결합 된 모델보다 거의 항상 밀접하게 결합됩니다. –

+0

가치가있는 것을 위해, 나는 MVC를 위해 Java Observer/Observable을 사용하지 않고, 대개 PropertyChangeSupport를 사용하여 "roll my own"을 사용한다. –