더북(TheBook)

42.4 함수형 프로그래밍 스타일: 메서드 체이닝

메서드의 반환값을 자신의 클래스 형식으로 지정하면 메서드를 계속 반복해서 호출하는 함수형 프로그래밍 스타일을 제공할 수 있습니다. 자세한 함수형 프로그래밍 내용은 61강에서 다룹니다. 다음 내용을 입력한 후 실행해 보세요.

> class Point
. {
.     public readonly int x; //readonly 필드
.     public readonly int y;
.     public Point(int x, int y)
.     {
.         this.x = x;        //readonly 필드는 반드시 생성자로 초기화 필요
.         this.y = y;
.     }
.
.     //① 생성자의 반환값을 자신(Point)으로 지정
.     public Point MoveBy(int dx, int dy)
.     {
.         return new Point(x + dx, y + dy);
.     }
. }
>
> //ⓐ 함수형 프로그래밍 스타일: 메서드 체이닝
> var p = (new Point(0, 0)).MoveBy(10, 10).MoveBy(20, 20).MoveBy(30, 30);
> $"X : {p.x}, Y : {p.y}"
"X : 60, Y : 60"

이미 우리는 LINQ에서 메서드 체이닝 개념을 학습했습니다. 이러한 메서드 체이닝을 구현하려면 반환값으로 자신의 개체를 반환합니다. 메서드 체이닝은 사용할 때는 편리하지만, 구현할 때는 코드가 복잡합니다. 나중에 확장 메서드를 만드는 방법을 배울 것인데, 이 확장 메서드를 사용하면 예제에서 만드는 방법보다 훨씬 간단하게 메서드 체이닝을 구현할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.