2010-05-17 6 views

답변

11

걱정거리가 있습니다.

옵저버를 사용하면 실제로 모델에 속하지 않은 코드를 제외시킬 수 있습니다. 예를 들어, User 모델은 사용자 레코드가 저장된 후에 등록 확인 전자 메일을 보내는 콜백을 가질 수 있지만이 코드는 모델의 용도와 직접 관련이 없으므로 모델에 실제로 원하지 않습니다.

옵저버를 사용하면 모델에 모든 콜백 코드가 없기 때문에 옵저버를 사용하여 명확하게 분리 할 수 ​​있습니다. 옵저버는 모델 (또는 모델)에 의존합니다.

0

저도 마찬가지입니다. 그러나 Observer 대신 콜백을 선호합니다.

옵저버는 콜백이지만 별도 모델입니다.

콜백 모델에 있습니다. 콜백이 있다는 것을 알기 때문에 해킹 할 수 있습니다.

0

나는 모델을 합리적으로 가늘게 유지하는 것이 중요합니다. 따라서 모델이 길어지면 오히려 관찰자를 사용하도록 리팩터링 할 때가 있습니다.

엄밀히 말해 건축가 POW (John의 답변에 나와 있듯이)는 separation of responsibilities입니다. 그러나 단순한 것이라면 어쨌든 모델에 붙여 두는 것을 선호합니다.

기술적으로 차이가 없습니다.

관련 문제