다음 파이썬 코드에 적용한 디자인 패턴은?class Greeting(o… | [7급 국가직 소프트웨어공학] 25년 1회차 기출문제 상세 페이지
1[7급 국가직 소프트웨어공학] 25년 1회차
다음 파이썬 코드에 적용한 디자인 패턴은?class Greeting(object):
def say(self):
kor = Korea()
kor.kor_hi()
jan = Japan()
jan.jan_hi()
chn = China()
chn.ch_hi()
class Korea(object):
def kor_hi(self):
print("안녕하세요\n")
class Japan(object):
def jan_hi(self):
print("곤니찌와\n")
class China(object):
def ch_hi(self):
print("니하오마\n")
class Hello(object):
def sayhello(self):
sh = Greeting()
sh.say()
insa = Hello()
insa.sayhello()
1
브릿지(bridge)
2
어댑터(adapter)
3
퍼사드(facade)
4
컴포지트(composite)
해설
적용된 디자인 패턴은 퍼사드(facade)이다.
Hello는 Korea·Japan·China를 직접 다루지 않고 Greeting의 say() 하나만 호출한다. 여러 하위 클래스를 감싸 단순한 통합 인터페이스를 제공하는 것이 퍼사드의 특징이다.
- 브릿지: 추상화와 구현을 분리해 각각 독립적으로 확장하게 하는 패턴으로, 추상-구현 계층 분리가 코드에 없다.
- 어댑터: 호환되지 않는 인터페이스를 변환해 맞춰 주는 패턴으로, 인터페이스 변환이 없다.
- 컴포지트: 객체를 트리 구조로 구성해 부분과 전체를 동일하게 다루는 패턴으로, 계층 구조가 없다.
오류나 개정된 내용이 보이면 알려주세요