메서드 체이닝(Method Chaining)
메서드 체이닝(Method Chaining)이란 한 객체의 메서드 호출이 연속적으로 이어질 수 있도록 설계된 프로그래밍 패턴입니다.
즉, 하나의 메서드를 호출한 결과로 반환된 객체가 또 다른 메서드를 호출할 수 있게끔 설계된 방식입니다.
- 객체 상태 변경이나 연산을 연속적으로 수행할 수 있음
- 메서드가 자기 자신의 객체(혹은 관련된 객체)를 반환하여 다음 메서드 호출을 가능하게 함
- 가독성 향상 : 중첩된 코드를 줄이고 직관적으로 표현 가능
예제
1. 메서드 체이닝 없이
public class User {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
User user = new User();
user.setName("Alice");
user.setAge(25);
System.out.println(user);
}
}
2. 메서드 체이닝 사용
public class User {
private String name;
private int age;
public User setName(String name) {
this.name = name;
return this; // 현재 객체(User)를 반환
}
public User setAge(int age) {
this.age = age;
return this; // 현재 객체(User)를 반환
}
@Override
public String toString() {
return "User{name='" + name + "', age=" + age + "}";
}
}
public class Main {
public static void main(String[] args) {
User user = new User()
.setName("Alice") // 메서드 체이닝
.setAge(25); // 메서드 체이닝
System.out.println(user); // 출력: User{name='Alice', age=25}
}
}
- 메서드는 호출 결과로 현재 객체 또는 다른 객체를 반환
- 반환된 객체가 다시 메서드를 호출할 수 있는 상태가 되어 연속적인 호출이 가능
3. Stream API
Java의 Stream API도 메서드 체이닝을 적극 활용
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream.of(1, 2, 3, 4, 5)
.filter(n -> n % 2 == 0) // 짝수 필터링
.map(n -> n * n) // 제곱 계산
.forEach(System.out::println); // 출력
}
}
요약
메서드 체이닝은
- 메서드 호출 결과로 객체를 반환하여 연속적인 호출을 가능하게 하는 패턴
- 가독성을 높이고 코드의 간결성을 제공
- 단, 사용 시 적절한 설계와 제한이 필요
출처
OpenAI의 ChatGPT (https://openai.com)
반응형
'CS > CS' 카테고리의 다른 글
CRUD (0) | 2025.01.07 |
---|---|
버퍼 (Buffer) (0) | 2025.01.04 |
명령형(imperative) VS 선언형(declarative) 프로그래밍 (1) | 2024.12.05 |
레이어드 아키텍처 응용 (Layered Architecture) (0) | 2024.12.03 |
TDD (Test-Driven Development) feat. JUNIT (0) | 2024.12.02 |