모두CBT

23-2디자인 패턴에 관한 설명이다. 빈칸 ①~③에 들어갈 패턴을 [보… | 2023년 정보처리기사실기 2회차 기출문제 상세 페이지

12

23-2

디자인 패턴에 관한 설명이다. 빈칸 ①~③에 들어갈 패턴을 [보기]에서 골라 적으시오.

  • ( ① ): 어떤 클래스의 인스턴스가 오직 하나만 만들어지도록 제한하고, 그 인스턴스에 프로그램 어디서나 접근할 수 있는 창구를 제공한다. 전역 변수를 쓰지 않고도 공유 객체를 둘 수 있다.
  • ( ② ): 객체 구조를 이루는 각 클래스에서 처리 로직을 떼어 내 별도의 클래스로 모은다. 이 클래스의 객체가 구조의 원소들을 차례로 방문하면서 작업을 수행한다.
  • ( ② ): 원소 클래스들을 고치지 않고도 새로운 연산을 덧붙이고 싶을 때 쓴다.
  • ( ③ ): 생성자에 넘길 인수가 많은 복잡한 객체를, 부품을 하나씩 지정하는 단계적 과정으로 조립해 만든다. 같은 조립 절차로 서로 다른 표현의 객체를 얻을 수 있다.

[보기] Adapter, Bridge, Builder, Command, Decorator, Facade, Factory Method, Flyweight, Iterator, Mediator, Memento, Observer, Proxy, Singleton, State, Strategy, Template Method, Visitor

해설

① Singleton

② Visitor

③ Builder


[해설]

인스턴스를 하나로 제한하고 전역 접근점을 주는 생성 패턴은 Singleton(싱글톤)이다. 생성자를 private으로 막고 정적 메서드로 유일 인스턴스를 돌려주는 방식으로 구현한다.

처리 기능을 데이터 구조에서 분리해 방문자 객체에 두는 행위 패턴은 Visitor(방문자)다. 원소는 accept(visitor)만 제공하고, 새 연산이 필요하면 방문자 클래스만 추가한다.

Iterator는 원소를 차례로 꺼내는 방법만 제공할 뿐 연산을 분리하지 않는다는 점에서 Visitor와 다르다.

복잡한 객체를 단계별로 조립하는 생성 패턴은 Builder(빌더)다. 생성 과정과 표현을 분리한다는 점에서 한 번에 객체를 만들어 주는 Factory Method와 구별된다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.