Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern

Slides:



Advertisements
Similar presentations
ㅋㅋ 다른 집단과 명확히 구별되는 가치체계와 지식 그리고 그에 부합하는 기술을 가지고 있어야 한다. 가치체계 - 사회복지사윤리강령, 선서 등 기본요소 완성 지식 - 사회복지사 1 급 자격증 시험으로 완성 기술 - 명확하지 않으나 실습, 보수교육을 통해 완성 Client.
Advertisements

Class diagram. 클래스 클래스 이름 연산 속성 2 class Transportation { private int maximumPassenger; private double speed; public void depart(); public void stop();
6.1 사용사례 6.2 객체 모델링 6.3 동적 모델링 6.4 시스템 설계 6.5 객체 설계 6.6 디자인 패턴
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
객체지향 프로그래밍.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
자바란 무엇인가? JDK의 다운로드 및 설치 방법 Hello, Java 프로그램의 작성 자바 프로그램의 작동 원리
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
8. 객체와 클래스 (기본).
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
명품 JAVA Programming.
Power Java 제4장 자바 프로그래밍 기초.
소프트웨어공학 UML 학기.
10장 객체-지향 프로그래밍 II ©창병모.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
2장. UML 기본 개념.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
자바 5.0 프로그래밍.
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
Java로 배우는 디자인패턴 입문 Chapter 20. Flyweight 동일한 것을 공유해서 낭비를 없앤다
명품 JAVA Essential.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
명품 Java Programming.
소프트웨어설계 UML 학기.
최용술 장 Thread 최용술
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
2010학년도 2학기 객체지향의 이해.
DataScience Lab. 박사과정 김희찬 (월)
인터페이스(Interfaces) 강원대학교.
This, static, final 지정 예약어 자바 4대 중첩 클래스
김 정 석 Web Programming 김 정 석
Android Coding Convention
광운 객체지향프로그래밍 부성순 강의목표 강의세부내용
제1장 서론.
2009학년도 1학기 상지대학교 컴퓨터정보공학부 고 광 만
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Chapter 3 클래스. 최호성.
DataScience Lab. 박사과정 김희찬 (월)
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
소프트웨어 공학 (Software Engineering)
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
제8장 필드와 메소드.
프로그래밍 개론 Ⅰ 제 1장 . 서론 ①.
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
프로그래머를 위한 첫걸음 JDBC Lecture 001 BY MINIO
Spring DI 이해 및 활용.
Chapter 02. 소프트웨어와 자료구조.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
[ 단원 06 ] 상속과 다형성.
UML과 객체지향 모델링 UML의 개요 객체지향 모델링.
자바 5.0 프로그래밍.
6장 클래스(상속).
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
2015년 2학년 1반.
김희정 Bridge Pattern.
Java 5장. 객체지향 개념 public class SumTest {
실습과제 1번 /* 1. 멤버 변수로 반경 radius를 갖고, 그 값을 모니터에 출력하는
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
1. 객체-지향 프로그래밍.
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern 2004.03

UML(Unified Modeling Language) 시스템을 시각화하거나 사양(specification)이나 설계(design)를 문서화하기 위한 표현 방법 본 교재에서는, 클래스나 인터페이스의 관계를 표현하기 위해 사용함 인터페이스: 메소드의 선언만 있고 구현 부분(body)이 없는 특수한 클래스 자원 www.omg.org/uml www.rational.com/uml /42

01. UML에 대해서 클래스 다이어그램 클래스나 인스턴스(객체), 인터페이스 등 간의 정적인 관계를 표현한 그림 /42

클래스 다이어그램 예제 01. UML에 대해서 ParentClass field1 field2 methodB ChildClass abstract class ParentClass{ int field1; static char field2; abstract void methodA(); double methodB(){ //… } 클래스 이름 methodA methodC ChildClass ParentClass field1 field2 methodB 필드(속성, 멤버면수) 이름 메소드 이름 class ChildClass extends ParentClass{ void methodA(){ //… } static void methodC(){ /42

01. UML에 대해서 클래스 다이어그램 예제 설명 부가적인 정보 ParentClass : 상위 클래스, 부모 클래스 ChildClass: 하위 클래스, 파생 클래스, 자식 클래스, 파생 클래스 부가적인 정보 추상 클래스(abstract class) 추상 메소드를 하나 이상 가지고 있는 클래스 이탤릭체로 이름을 표현한다. 정적 필드(static field) 객체가 아니라 클래스에 포함된 변수(객체마다 하나씩 생기지 않는다) 밑줄을 그어 이름을 표현한다. 추상 메소드(abstract method) 구현 부분이 없는 메소드 => 자식 클래스가 구현해야 한다. 이탤릭체로 이름을 표현한다 정적 메소드(static method) 객체가 아니라 클래스에 포함된 메소드(정적 메소드나 정적 필드만을 접근할 수 있다) /42

01. UML에 대해서 인터페이스와 구현 인터페이스란, 구현 부분이 생략되어 있는 메소드들의 이름만 선언되어 있다. 설명: PrintClass 클래스가 Printable 인터페이스를 구현한다. interface Printable{ abstract void print(); abstract void newPage(); } class PrintClass implements Printable{ void print(){ //… void newPage(){ /42

01. UML에 대해서 집합(Aggregation) ‘갖고 있는 관계’는 aggregation으로 표현한다. 설명: Backet 클래스는 Fruit 클래스의 인스턴스를 가지고 있다. 즉, Basket 클래스에는, Fruit 클래스로 선언된 필드(변수)가 있다. Fruit 클래스도 Color 클래스의 인스턴스를 가진다. Color class Color{ //… } class Fruit{ Color color; class Basket{ Fruit[] fruits; Fruit color Basket fruits /42

01. UML에 대해서 액세스 제어 public 메소드나 필드: + private 메소드나 필드: - protected 메소드나 필드: # class Something{ private int privateField; protected int protectedField; public int publicField; private void privateMethod(){ } protected void protectedMethod(){ } public void publicMethod(){ } Something -privateField #protectedField +publicField -privateMethod #protectedMethod +publicMethod /42

01. UML에 대해서 클래스간의 관계 클래스간의 관계를 나타내기 위해서 클래스를 연결하고, 그 위에 관계를 나타내는 이름을 붙인다. 삼각형 방향으로 해석한다. /42

01. UML에 대해서 시퀀스(sequence) 다이어그램 프로그램이 동작할 때, 객체들 사이의 메소드들이 어떤 순서로 실행되는 지를 보여준다 객체들간의 협동 과정을 보여줌 : Client 클래스의 익명의 객체를 의미한다. : Client 클래스의 clientA라는 이름의 객체를 의미한다. 사각형 아래의 점선은 생명선(life line)을 나타낸다 인스턴스(객체)가 존재하는 기간을 의미함 생명선 중간의 가늘고 긴 사각형: 객체가 활동 중임을 나타낸다. 즉, CPU를 얻어서 실행이 되는 상태 clientA:Client /42

01. UML에 대해서 시퀀스(sequence) 다이어그램 class Client{ Server server; void work(){ server.open(); server.print(“Hello”); server.close(); } //… } class Server{ Device device; void open(){ //…} void print(String s){ device.write(s); //… void close(){ //…} //… class Device{ void write(String s){ //…} /42

클래스 라이브러리 구현 시, 디자인 패턴이 적용된다. 02. 디자인 패턴을 배우기 전에 디자인 패턴은 클래스 라이브러리가 아니다. 클래스 라이브러리: 많이 사용되는 클래스들을 미리 만들어서 모아둔 것 예: 통신 관련 클래스 라이브러리, 수학 관련 클래스 라이브러리 클래스 라이브러리 구현 시, 디자인 패턴이 적용된다. 예: java.util.Calendar 클래스에의 getInstance( ) 메소드에서 Factory Method 패턴(4장)이 사용된다. 다이어그램을 단순히 보지 말고, 그 의미를 읽어내야 한다. 스스로 예제를 생각해야 한다. /42