개발자들 사이의 폐쇄에 대해 왜 그렇게 화제가됩니까? 내 경력에서 나는 그들이 무엇인지 명확하게 이해하지 못했지만 의도적으로 사용하지 않았습니다.
UPD : 명확히하기 위해. 질문은 왜 폐쇄 개념이 요즘 화제가되었는지에 관한 것입니다.
개발자들 사이의 폐쇄에 대해 왜 그렇게 화제가됩니까? 내 경력에서 나는 그들이 무엇인지 명확하게 이해하지 못했지만 의도적으로 사용하지 않았습니다.
UPD : 명확히하기 위해. 질문은 왜 폐쇄 개념이 요즘 화제가되었는지에 관한 것입니다.
답변:
클로저는 가져온 세계를 계속 사용할 수있는 상태를 기억하는 코드입니다.
예를 들어, Java에서 익명 함수를 정의하여 해당 함수가 YourObject 내부에 있으며 해당 메소드와 함수를 조작 할 수 있음을 알고 있습니다. 그런 다음이 함수는 예를 들어 리스너에 전달됩니다. 예를 들어 리스너 내부로 깊숙이 들어가지만 여전히 루트에 생명선이 있습니다.
이것은 코드를 사용하여 코드에 알려지지 않은 코드를 다른 코드 부분으로 다시 전달할 수있게 해주는 매우 강력한 개념입니다.
클로저는 다양한 문제를 우아한 방식으로 해결하기위한 것입니다. 실제로 클로저가없는 프로그래밍 언어에서는 유사한 기능을 구현하는 기술이 만들어집니다.
C ++의 펑 터나 Java의 Runnables를 생각해보십시오. 그것들은 클로저와 유사한 기능을 허용하는 기술 일뿐입니다. 어떤 종류의«수동 폐쇄».
클로저는 인기있는 언어로 통합되어 인기가 높아지고 있습니다. 예를 들어 Google 문서와 같은 온라인 애플리케이션, C # 구현, PHP 5.3 이후 구현 등으로 인해 자바 스크립트가 증가하고 있습니다.
이제 더 많은 기술에서 클로저를 사용할 수있게되면서 점점 더 많은 사람들이 관심을 갖는 것이 매우 간단 해졌습니다.
이제 폐쇄는 무엇입니까? 이것은 매우 간단합니다. 클로저는 함수와이를 실행하기위한 컨텍스트입니다. 이것은 객체로 조작됩니다. 왜 이것이 유용한가요? 이것은 고유 코드를 기존 코드에 연결하는 데 유용합니다.
스레드 풀을 사용한 멀티 스레딩과 같이 다른 코드 조각으로 작업을 관리하거나 선택한 이벤트 (UI의 경우 자바 스크립트에서 자주 사용됨)에서 작업을 실행해야하는 경우 두 가지 일반적인 상황이 있습니다.
나는 다른 날에 재미있는 인용문을 보았습니다. "클래스는 함수가있는 데이터입니다. 클로저는 데이터가있는 함수입니다."
예, 지나치게 단순화 된 것이지만 요점을 파악하는 데 도움이됩니다.