메서드 체인

Method chaining

메서드 체인은 이름 있는 파라미터 idi라고도 하며 객체 지향 프로그래밍 언어에서 여러 메서드 호출을 호출하기 위한 일반적구문입니다.각 메서드는 오브젝트를 반환하고 중간 [1]결과를 저장하는 변수를 필요로 하지 않고 콜을 단일 스테이트먼트 내에서 체인으로 연결할 수 있습니다.

근거

국소 변수 선언통사당입니다.[2]

메서드 체인은 각 중간 단계에 대해 추가 변수를 제거합니다.개발자는 변수의 이름을 지정하고 변수를 염두에 두어야 하는 인지적 부담에서 벗어날 수 있습니다.

메서드 체인은 더 많은 메서드가 함께 [3]체인됨에 따라 동일한 라인에서 연속적으로 발생하는 메서드의 수가 증가하기 때문에 "트레인 파괴"를 발생시키는 것으로 알려져 왔습니다.

유사한 구문은 메서드 캐스케이드입니다.메서드 호출 후 식에 의해 메서드의 반환값이 아닌 현재 객체가 평가됩니다.캐스케이드는 메서드가 현재 객체 자체를 반환하도록 함으로써 메서드 체인을 사용하여 구현할 수 있습니다.캐스케이딩은 유창한 인터페이스의 핵심 기술이며, 체인은 객체 지향 언어로 널리 구현되지만 캐스케이딩은 그렇지 않기 때문에 이러한 형태의 "복귀에 의한 캐스케이딩"은 다음과 같습니다.이것은 종종 단순히 "사슬링"이라고 언급된다.체인과 캐스케이드 모두 Smalltalk 언어에서 유래했습니다.

체인은 구문이지만 의미론적인 결과, 즉 오브젝트를 반환하는 메서드가 필요하며 체인을 통한 캐스케이딩을 구현하는 경우 이것이 현재 오브젝트여야 합니다.그러면 반환 값이 오류 값 반환 등 다른 목적으로 사용되는 것을 방지할 수 있습니다.

일반적인 예로는 C++의 iostream이 있습니다.<<체인을 허용하는 왼쪽 개체를 반환합니다.

비교:

a << > b << > c; 

등가:

a << > b; a << > c; 

JavaScript의 또 다른 예에서는 Array의 내장 메서드를 사용합니다.

뭔가   .필터(x => x.세어보세요 > 10)   .종류((a, b) => a.세어보세요 - b.세어보세요)   .지도(x => x.이름.) 

「 」를 참조해 주세요.

레퍼런스

[4]

  1. ^ "Applying Method Chaining". First Class Thoughts. Archived from the original on 2011-02-22. Retrieved 2011-04-13. In order to simplify repeated object interactions on the same object the old trick Method Chaining originating the world of Smalltalk should be enforced. The idea is to let methods return this rather than void, thus affecting especially set() and add() methods. Method chaining arose during the designers of Smalltalk pursuit to minimize the number of keywords in the language, which lead to the discovery that void is an unnecessary keyword!.
  2. ^ "CMSC 631 – Program Analysis and Understanding" (PDF). • Syntactic sugar for local declarations - let x = e1 in e2 is short for (λx.e2) e1
  3. ^ Martin, Robert Cecil (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. ISBN 0-13-235088-2.
  4. ^ PHP에서의 메서드 체인

외부 링크