관리 메뉴

CASSIE'S BLOG

[슈퍼코딩] 64-2강 디자인 패턴 소개 본문

PROGRAMMING/슈퍼코딩 강의 정리

[슈퍼코딩] 64-2강 디자인 패턴 소개

ITSCASSIE1107 2023. 12. 16. 19:24
반응형

userBuilder의 constructor 만들고, 근데 빈 constructor를 만들면 된다고함.

 

스스로 UserBuilder를 반환하는 메소드를 정의한다.

 

이런 식으로 메소드 계속 만들면 된다.

 

 

여기서 this는 뭐야? public userBuilder firstName (String firstName) { this.firstName = firstName; return this; }

 

위 코드는 빌더 패턴(Builder Pattern)을 사용하여 사용자(User) 객체를 생성하는 빌더 메서드 중 하나입니다. 여기서 this는 현재 객체(메서드가 속한 객체)를 나타냅니다.

 


public userBuilder firstName(String firstName) {
    this.firstName = firstName;
    return this;
}


 

해당 메서드는 userBuilder 클래스의 인스턴스를 생성하거나 수정하는 메서드로, firstName 필드를 설정하고 빌더 자체를 반환합니다. 메서드의 반환 유형이 userBuilder이기 때문에, 메서드 체이닝(Chaining)을 사용할 수 있습니다.

예를 들어:

 

userBuilder builder = new userBuilder();
builder.firstName("John").lastName("Doe").age(30);

 

 

메서드 체이닝(Method Chaining)은 객체 지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 여러 메서드 호출을 하나의 문장처럼 연결하여 사용하는 패턴을 말합니다. 이는 코드를 간결하게 작성할 수 있도록 도와주며, 가독성을 향상시키는데 기여합니다.

메서드 체이닝은 주로 빌더 패턴이나 플루언트 API(Fluent API) 디자인에서 많이 사용됩니다. 위에서 제시한 예제에서 빌더 패턴을 사용한 코드는 메서드 체이닝을 활용한 좋은 예입니다.

 

userBuilder builder = new userBuilder();
builder.firstName("John").lastName("Doe").age(30);

 

 

위의 코드에서 firstName, lastName, age와 같은 메서드를 연이어 호출하여 객체를 설정하고 있습니다. 각 메서드는 자신이 속한 객체를 반환하므로, 다음 메서드를 연달아 호출할 수 있습니다.

장점으로는 다음과 같은 점이 있습니다:

  1. 가독성 향상: 여러 메서드 호출이 하나의 문장처럼 연결되기 때문에, 코드의 의도가 더 명확해집니다.
  2. 코드 간결성: 여러 줄의 코드를 한 줄로 표현할 수 있으므로, 코드가 더 간결해집니다.
  3. 선택적인 메서드 호출: 필요한 메서드만 호출할 수 있으며, 다른 메서드는 호출하지 않아도 됩니다.

주의할 점은 메서드 체이닝을 사용할 때, 각 메서드가 자기 자신의 객체를 반환하도록 구현되어 있어야 합니다. 이를 위해 메서드는 보통 자기 자신(this)을 반환하도록 설계됩니다.

반응형