비디오: 파이썬 강좌 | Python MOOC | Objects in Python 2024
객체 지향 (OO) 기술은 책임과 관심사를 함께 묶어서 하나의 개체 (예: 클래스). 그러나 일부 책임은 OO 언어에서 사용할 수있는 표준 기술을 사용하여 캡슐화 할 수 없습니다. 이러한 책임은 프로그램의 여러 부분을 "훑어보기"때문에 크로스 커팅 문제라고합니다. 로깅은 시스템의 모든 부분에서 로깅을 구현해야하기 때문에 큰 문제가됩니다. 그러나 모든 시스템 구성 요소가 표준 방법으로 로그를 기록하는 유일한 방법은 적절한 경우 코드를 수동으로 삽입하는 것입니다.
를 지정하여 크로스 커팅 문제를 해결할 방법을 계획 할 수 있습니다. 그런 다음 도구는 구현을 생성하여 코드의 필요한 모든 위치에 삽입합니다. 다음 예제는 AOP를 스택 구현에 사용하는 방법을 보여줍니다. aspect AddLogging {- push (ItemType * item) {AddLogging. info (@ "푸시 항목", 항목)} - (ItemType *) pop {AddLogging. Info (@ "Popping item", returnedItem);} // 기타 크로스 커팅 코드}