◈ Study/디자인패턴(GoF)🥞

    [GoF] Adapter 패턴 : 사이에 끼워 재사용한다(1) [제공된 것과 필요한 것 사이의 차이를 메워주는 패턴]

    - Adapter 패턴 : 사이에 끼워 재사용한다 Adapter 패턴은 제공된 것과 필요한 것 사이에 들어가서 그 차이를 메워주는, 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 디자인 패턴이다. Wrapper 패턴이라고도 불린다. - 어떤 경우에 사용할까? Adapter 패턴은 기존 클래스에 한겹 덧씌어 필요한 클래스를 만든다. 즉, 기존 클래스는 충분히 테스트되어 버그가 없는 것을 알기에 Adapter 역의 클래스를 중점적으로 살펴보면 프로그램 검사가 매우 편해진다. 새로운 인터페이스(API)에 맞추기 위해 기존 클래스의 소스를 수정하게 된다면, 기존 클래스 또한 다시 테스트 해야 한다. 소프트웨어 버전 업에도 유용하게 사용된다. Adapter 패턴을 사용하면, 신버전과 구버..

    [GoF] Iterator 패턴 : 처리를 반복한다 [전체를 검색하고 처리를 반복하는 패턴]

    - Iterator 패턴 : 처리를 반복한다 Iterator 패턴은 컬렉션의 요소들의 기본 표현​(리스트, 스택, 트리 등)​을 노출하지 않고 그들을 하나씩 순회할 수 있으며, 무엇인가 많이 모여 있을 때 이를 순서대로 가리키며 전체를 검색하고 처리를 반복하는 패턴이다. - 어떤 경우에 사용할까? 그냥 반복문을 돌리면 될텐데, 왜 번거롭게 Iterator라는 걸 만들어서 사용하는가? 가장 큰 이유는 Iterator를 사용함으로 구현과 분리하여 반복할 수 있다. Iterator it = bookShelf.iterator(); while(it.hasNext()) { Book book = it.next(); System.out.println(book.getName()); } 위의 while 문에서는 hasNe..