728x90
반응형
반응형
IT CookBook, 쉽게 배우는 소프트웨어 공학(2판)
- 저자 :김치수
- 출간 :2021-06-30
- ISBN :9791156645429
[쉽게 배우는 소프트웨어 공학(2판)] 연습문제 솔루션
Chap7. 디자인 패턴
- 4) 절차형 언어와 함께 이용될 때 효율이 극대화된다.
- 4) 추상 패턴
- 3) factory method 패턴
- 1) 개발자 이름
- 3) prototype 패턴
- 4) observer 패턴
- 2) vsitor
- 4) strategy 패턴
- 2) composite 패턴
- 2) ⓑ ⓐ ⓒ
반응형
- 4) facade 패턴
- 2) adapter 패턴
- 3) composite 패턴: 연산을 적용할 원소의 클래스를 변경하지 않고도 새로운 연산을 정의할 수 있게 한다.
- 1) observer 패턴
- 1) bridge 패턴
- 현재 로봇(Robot)은 아톰(Atom)과 태권브이(TaekwonV) 2가지 종류가 있다. 그리고 로봇의 기능도 공격(Attack)과 방어(Defence) 기술을 가지고 있다. 아톰의 공격 기술은 불꽃(Flame), 방어 기술은 날기(Flight)이다. 태권브이의 공격 기술은 강펀치(Punch), 방어 기술은 회피(Avoidability)이다. 로봇의 종류는 계속 추가 및 삭제될 수 있고 공격과 방어 기술도 추가 및 삭제될 수 있다.
반응형
- 사람 손의 터치로 상태가 바뀌는 조명이 있다. 꺼짐(Off) 상태에서 한 번 터치하면 독서 상태로 바뀌고 독서 상태에서 터치하면 TV 시청 상태로 바뀐다. TV 시청 상태에서 터치하면 수면 상태로 바뀌고 수면 상태에서 터치하면 꺼짐 상태로 바뀐다.
반응형
- [‘커피숍주문시스템’의 요구사항] - 커피숍에는 여러 종류의 음료(beverage)가 있다. - 커피는 HouseBlend, DarkRoast, Decaf, Espresso…등 수많은 종류가 있고 계속 늘어난다. - 커피숍 주문 시스템의 핵심 기능은 여러 종류의 음료에 대해 가격(cost)을 계산하는 것이다. [고객이 원하는 커피는… 수십 종의 커피가 존재...] {커피+우유}, {커피+두유}, {커피+모카(초콜릿) }, {커피+우유+휘핑 크림}, {커피+두유+휘핑 크림}, {커피+모카(초콜릿)+ 휘핑 크림}…
반응형
- [‘로봇시스템 구축’의 요구사항] - 로봇시스템을 개발한다. 왼쪽 팔은 기존에 개발된 로봇 팔을 그대로 사용한다. 오른쪽 팔은 시간 관계상 최신 로봇 팔 컴포넌트를 구입하여 사용한다. [문제점] 구입한 로봇 팔이 기존 인터페이스를 제공하지 않는다. 그리고 기존 로봇 팔의 올림/내림 인터페이스는 lift(), down()을 사용하는데 구입한 로봇 팔의 올림/내림 인터페이스는 upArm(), downArm() 메서드를 사용한다.
[해결안] 새 로봇 팔을 상속받고 interface를 실현하여 새 로봇 팔도 표준 API를 가짐. lift(): {super.upArm} 로봇 팔 올림, Down(): {super.downArm} 로봇 팔 내림
반응형
-
- facade 패턴의 필요성
- facade 패턴은 그림처럼 클라이언트와 클래스 사이에 facade라는 객체를 세워놓음으로써 복잡한 관계를 정리(구조화)한 것이다. 즉 모든 관계가 전면에 세워진 facade 객체를 통해서만 이루어질 수 있게 단순한 인터페이스를 제공(단순한 창구기능)하는 것이다. facade 패턴을 이용하면 서브시스템 내부에서 작동하는 많은 클래스의 관계나 사용법을 의식하지 않고 facade에서 제공하는 단순화된 하나의 인터페이스만 사용하므로 클래스 간의 의존 관계가 줄어들고 복잡성도 낮아지는 효과를 볼 수 있다. 여기서 facade 객체는 클라이언트의 요청이 발생했을 때 서브시스템 내의 특정한 객체에 요청을 전달하는 역할을 한다. 이 역할을 수행하려면 facade 객체는 서브시스템의 클래스에 어떤 기능이 있는지(어떤 요청을 처리하는지) 알고 있어야 한다. 서브시스템의 클래스는 각각의 기능을 구현한다. 즉 facade 객체로부터 할당된 작업을 실제로 처리한다. 그러나 facade 객체에 대해 어떤 정보도 가지고 있지 않다.
- facade 패턴의 장점 및 단점
- 클라이언트는 facade로 제공되는 인터페이스만 알고 있으면 사용이 가능하다.
- 클라이언트는 객체의 내부 구조를 상세히 알 필요가 없다.
- 클라이언트가 서브 기능을 쉽게 사용할 수 있도록 단순화시킨다.
- 강한 결합 구조가 느슨한 구조로 변경되어 객체의 의존 관계를 줄여준다.
- facade 클래스가 새로 만들어져 관리할 클래스가 하나 더 늘어난 것은 단점이다.
- facade 패턴의 필요성
728x90
반응형
'Major > 소프트웨어 공학' 카테고리의 다른 글
[쉽게 배우는 소프트웨어 공학(2판)] 연습문제 6장 답 (0) | 2023.10.24 |
---|---|
[쉽게 배우는 소프트웨어 공학(2판)] 연습문제 5장 답 (0) | 2023.10.24 |
[쉽게 배우는 소프트웨어 공학(2판)] 연습문제 4장 답 (0) | 2023.10.24 |
[쉽게 배우는 소프트웨어 공학(2판)] 연습문제 3장 답 (0) | 2023.10.24 |
[쉽게 배우는 소프트웨어 공학(2판)] 연습문제 2장 답 (0) | 2023.10.24 |