두 가지 클래스가 있습니다 : 계정 및 운영자. 계정에 운영자 목록이 포함되어 있습니다. 이제 연산자 (목록에있는)가 메시지를 수신 할 때마다 Account 개체에 비즈니스 논리를 수행하도록 알리고 싶습니다.컨테이너 개체 알리기 : 모범 사례
1) 컨테이너 [계정] 객체에 대한 운영자 내에서 참조를 잡고 직접 메소드를 호출 :
나는 이것을 달성하는 방법에 대한 세 가지 대안을 생각한다. 순환 참조 때문에 절대적으로 좋지 않습니다.
2) 이벤트 사용. 내가 아는 한, 파이썬에는 내장 이벤트 처리 메커니즘이 없다. 그래서, 이것은 구현하기에 약간 까다 롭습니다.
3) 운영자에게 직접 메시지를 보내지 마십시오. 대신 계정 만 작동하고 내부적으로는 처리기 운영자를 사용하십시오. 이것은이 경우에는 연산자에 대한 참조를 전달할 수 없기 때문에 약간 제한적입니다.
어떤 접근 방식이 아키텍처 관점에서 가장 유리한 지 궁금합니다. 이 작업을 어떻게 처리합니까?
파이썬에서 스 니펫을 지적 할 수 있다면 좋을 것입니다.
+1 - Python 2.5를 사용하고 __del__ 메소드를 정의하지 않는 한 순환 참조는 크지 않습니다. 더 이상 거래하지 마라. –
@ Jason Baker : Python을 7 년 동안 많이 사용해 왔지만 __del__ 메소드를 정의하지 않았습니다. 양방향 관계에 문제가 없었으므로 정기적으로 사용하십시오. 그들은 2.2까지 줄곧 위대한 일을했습니다. –
좋아, 모든 순환 참조를 추적한다는 것을 몰랐다. 하지만 __del__ 메서드를 정의하면 (어떤 이유로 든) 어떻게 될까요? 나는 아직도 그들을 수동으로 추적해야한다, 그렇지? –