북 클럽: "테스트 주도 개발: 예제로"#8

2664 단어 booksdiscusstdd

8장: 물건 만들기



이 장은 프랑 또는 달러를 곱하는 방법times의 중복을 제거하기 위한 준비입니다.

The next step forward is not obvious



전혀 그렇지 않다. 하지만 우리가 달성한 것은 두 메서드가 Money 또는 Dollar 가 아닌 동일한 유형( Franc )을 반환하도록 하는 것입니다.

우리는 또한 Money에서 팩토리를 사용합니다. 즉, 테스트에서 Dollar 또는 Franc 개체를 새로 만들 필요가 없습니다. 내가 익숙한 것보다 훨씬 간단한 방법으로 자바 팩토리를 조금 살펴보고 싶었습니다.

공장 패턴



Factory는 은행의 출납원이나 도서관의 사서와 같은 다른 개체에 대한 생성 및/또는 액세스를 제어하는 ​​개체입니다.

이는 팩토리(또는 팩토리 메소드)가 단순히 새 객체를 생성하는 메소드일 수 있음을 의미합니다.

class Library {

  /**
   * The librarian is a factory method, controlling 
   * the creation of book loans.
   */
   BookLoan Librarian(Book request) {
    return new BookLoan(request);
  }
}


그러나 사서 대신 개체 생성을 위한 전용 팩토리 메서드를 가질 수 있습니다. 이렇게 하면 생성 동작을 캡슐화하여 팩토리를 더 쉽게 유지 관리할 수 있으며 개체 인스턴스화를 하위 클래스로 연기할 수도 있습니다.

추상 팩터리 메서드는 구현을 정의하기 위해 하위 클래스가 필요합니다.

구체적인 팩터리 메서드는 인터페이스이며 구현도 정의하며 하위 클래스는 구현을 재정의할 수 있습니다.

정적 팩터리 메서드는 효율적이지만 하위 클래스가 구현을 재정의하는 것을 허용하지 않습니다. 호출되면 생성자를 사용할 때와 같이 인스턴스를 새로 만들 필요가 없으며 복제 및 불필요한 개체 생성을 방지하도록 인스턴스를 제어할 수 있습니다.

📚 리소스
  • GoF Design Patterns
  • Applying the Factory Pattern to Java™ RMI

  • 🔎 https://github.com/ruthmoog/test-driven-development-by-example에서 내 코드와 함께 저장소 보기


    Kent Beck의 "Test Driven Development: By Example"은 2002년에 발표되었습니다. 이 책은 TDD를 사용하여 작동하는 고품질 코드를 작성하는 방법을 설명하는 것을 목표로 합니다.

    좋은 웹페이지 즐겨찾기