Java 로 배우는 디자인패턴 입문 Chapter 15. Facade 간단한 창구 2004-1 덕성여자대학교 컴퓨터학부.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

컴퓨터와 인터넷.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Database Laboratory, Hong Ik University
컴퓨터의 응용-검색엔진 <컴퓨터의 응용> 교수명: 용환승 공학부, 이한아
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Java로 배우는 디자인패턴 입문 Chapter 22. Command 명령을 클래스로 만든다
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Java로 배우는 디자인패턴 입문 Chapter 17. Observer 패턴 상태의 변화를 통지한다
자바 5.0 프로그래밍.
컴퓨터응용과학부 Java Enterprize(DB) 제 15 주
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Power Java 제14장 배치 관리자.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
자바 5.0 프로그래밍.
CHAP 12. 리소스와 보안.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
[INA470] Java Programming Youn-Hee Han
7장 인터페이스와 추상 클래스.
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
자바 5.0 프로그래밍.
27장. 모듈화 프로그래밍.
Device Driver 임베디드 시스템 I.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
영상처리 실습 인공지능연구실.
RMI Messenger 지도 : 김정배 교수님 조봉진.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
제 5 장 집합연관, 복합연관, 인터페이스, 실체화 (교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006) 학기 소프트웨어설계.
자바 5.0 프로그래밍.
Power Java 제11장 상속.
JA A V W. 06.
CHAP 21. 전화, SMS, 주소록.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
Flow Diagram IV While.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
JSP Programming with a Workbook
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
.Net FrameWork for Web2.0 한석수
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
JSP Programming with a Workbook
적용 가능 시간표 무한 생성 기계 2007/06/18 최석훈.
Power Java 제14장 배치 관리자.
 6장. SQL 쿼리.
7 생성자 함수.
6 객체.
Presentation transcript:

Java 로 배우는 디자인패턴 입문 Chapter 15. Facade 간단한 창구 덕성여자대학교 컴퓨터학부

덕성여대 컴퓨터학부 Facade 패턴  객체 지향 프로그램은 많은 클래스와 객체들로 이루어지고, 서로 복잡한 관련을 맺고 있다. – 이들을 모두 이해하고 제어하기가 힘들다. – 이들을 제어하기 위한 ‘ 창구 ’ 역할을 담당하는 클래스를 만들자  facade: 건물의 정면  복잡한 내부는 숨기고, 높은 레벨의 인터페이스 (API) 를 외부 에 제공한다.

덕성여대 컴퓨터학부 Facade 패턴

덕성여대 컴퓨터학부 예제 프로그램  사용자의 웹페이지를 작성하는 프로그램  Facade 패턴의 예를 보이지 위해서는 “ 복잡하게 얽혀 있는 많은 클래스 ” 가 필요하다. – 그러나, 본 예제에서는 3 개의 클래스로 구성된 시스템을 생각 한다. Facade 역할 (High-level API 제공 )

덕성여대 컴퓨터학부 예제 프로그램  만들고자 하는 웹페이지

덕성여대 컴퓨터학부 예제 프로그램  클래스 다이어그램 Facade 역할 (High-level API 제공 ) Subsystem

덕성여대 컴퓨터학부 예제 프로그램  소스파일 디렉토리 구조

덕성여대 컴퓨터학부 예제 프로그램  Database 클래스 – 데이터베이스 명을 지정하면, 그것에 해당하는 Properties 를 작 성하는 클래스 –getProperties(String dbname)  Properties 인스턴스를 생성한 후, dbname.txt 파일로부터 여러 가 지 속성 값을 읽어 들여 이를 리턴하는 메소드  Properties 클래스 –key 와 value 쌍으로 되어 있는 속성의 집합을 유지하는 클래스  maildata.txt – 속성을 저장하고 있는 파일 – 형식 : key=value

덕성여대 컴퓨터학부 예제 프로그램  HtmlWriter 클래스 – 간단한 웹페이지를 작성하는 클래스 – 생성자  Writer 타입의 인스턴스를 받아들여, 멤버 변수인 write 에 할당한다. –title( ): 헤더 및 타이틀에 대한 html 태그를 작성하는 메소드 –paragraph( ): 문단을 작성하는 메소드 –link( ): 하이퍼링크를 만드는 메소드 –mailto( ): 메일주소 링크를 만드는 메소드 –close( ): HTML 출력을 끝내는 메소드 – 제약조건 : title( ) 메소드가 제일 먼저 호출되어야 한다.  이 조건은, 창구가 되는 PageMake 클래스에 표현되어 있다.

덕성여대 컴퓨터학부 예제 프로그램  PageMaker 클래스 –Database 클래스와 HtmlWriter 클래스를 조합하여, 지정된 사 용자의 웹 페이지를 작성하기 위한 클래스 –makeWelcomePage(String mailaddr, String filename)  Database 클래스를 이용해서 – “maildata.txt” 파일로부터 속성 집합을 얻은 후, 속성 중에서 입력 인 자로 들어온 mailaddr 를 key 로 하여 해당 value 를 얻는다.  HtmlWriter 클래스의 메소드들을 이용해서 – 입력 인자로 들어온 filename 파일에 HTML 문서를 작성한다.

덕성여대 컴퓨터학부 예제 프로그램  Main 클래스 –pagemaker 패키지의 PageMaker 클래스를 이용해서, 를 key 로 한 value 를 가지고 “welcom.html” 이 라는 HTML 문서를 완성한다. –Main 클래스는, Database 나 HtmlWriter 클래스를 직접 이용하 지 않고, high-level API 를 제공하는 PageMaker 의 메소드만을 사용하여 원하는 작업을 한다.

덕성여대 컴퓨터학부 등장 역할  Facade( 정면 ) 의 역할 – 시스템을 구성하는 많은 역할의 ‘ 간단한 창구 ’ 가 되는 역할을 한다. – 높은 레벨에서 간단한 인터페이스를 시스템 외부에 제공한다. – 예제에서는 PageMaker 클래스가 해당됨  시스템을 구성하고 있는 그 밖의 많은 역할 –Facade 역할로부터 호출되는, 시스템을 구성하는 많은 클래스 들 – 이들은, Facade 역할은 의식하지 않는다 – 예제에서는, Database 와 HtmlWriter 클래스가 해당됨

덕성여대 컴퓨터학부 등장 역할  Client( 의뢰자 ) 의 역할 –Facade 패턴을 이용하는 역할 – 예제에서는, Main 클래스가 해당됨

덕성여대 컴퓨터학부 독자의 사고를 넓혀주는 힌트  Facade 역할이 하는 일은 무엇일까 – 복잡한 것을 단순하게 보여준다  내부에서 작동하고 있는 많은 클래스들의 관계나 사용법을 의식하 지 않도록 해 주는 역할  외부에 보이는 API 를 적게 해 주고 단순하게 해 준다.  재귀적인 Facade 패턴의 적용 – 여러 패키지들이 있고, 패키지마다 Facade 역할이 정의되어 있 다면, 이들 Facade 들에 대한 Facade 역할을 재귀적으로 정의 할 수 있다

덕성여대 컴퓨터학부 관련 패턴  Abstract Factory 패턴 (8 장 )  Singleton 패턴 (5 장 )  Mediator 패턴 (16 장 )

덕성여대 컴퓨터학부 요약  복잡한 시스템에 대한 간단한 창구의 역할을 하는 Facade 패 턴

덕성여대 컴퓨터학부 17 연습 문제  15-1 – 외부에서 절대로 Database 클래스나 HtmlWriter 클래스를 이용 할 수 없도록 하려면, 어떻게 예제 프로그램을 변경해야 하는가 ?  15-2 –maildata.txt 의 내용을 이용해서, 메일 주소 링크 만을 포함하는 파일을 만드는 makeLinkPage( ) 메소드를 PageMaker 클래스에 추가하기  예 : 그림 15-7, 15-8, 15-9