목차 일부
Chapter 1 객체지향 개념 소개 ... 21
절차지향과 OO 프로그래밍 ... 23
절차지향에서 객체지향 개발로 이동 ... 28
절차지향 프로그래밍 ... 28
OO 프로그래밍 ... 28
객체란 정확히 무엇인가? ... 29
객체 데이터 ... 29
객체 행위 ... 30
클래스란 정...
더보기
목차 전체
Chapter 1 객체지향 개념 소개 ... 21
절차지향과 OO 프로그래밍 ... 23
절차지향에서 객체지향 개발로 이동 ... 28
절차지향 프로그래밍 ... 28
OO 프로그래밍 ... 28
객체란 정확히 무엇인가? ... 29
객체 데이터 ... 29
객체 행위 ... 30
클래스란 정확히 무엇인가? ... 34
클래스는 객체 템플릿이다 ... 36
속성 ... 38
메서드 ... 38
메시지 ... 38
UML을 사용하여 클래스 다이어그램 모델 만들기 ... 39
캡슐화와 데이터 은닉 ... 40
인터페이스 ... 40
구현 ... 42
인터페이스/구현 패러다임의 실제 예 ... 42
인터페이스/구현 패러다임의 모델 ... 43
상속 ... 44
상위 클래스와 하위 클래스 ... 46
추상화 ... 46
Is-a 관계 ... 48
다형성 ... 48
조합 ... 53
추상화 ... 53
Has-a 관계 ... 53
결론 ... 54
이 장에 사용된 예제 코드 ... 54
Chapter 2 객체 관점에서 생각하는 방법 ... 61
인터페이스와 구현 간의 차이가 있다는 점을 인식 ... 63
인터페이스 ... 65
구현 ... 56
인터페이스/구현 예 ... 66
인터페이스를 설계할 때 추상적으로 생각하기 ... 72
사용자에게 가능한 최소한의 인터페이스를 제공 ... 74
사용자 확인 ... 75
객체 행위 ... 76
환경적 제약 사항 ... 77
공개 인터페이스 확인 ... 77
구현 확인 ... 78
결론 ... 79
참고 도서 ... 80
Chapter 3 고급 객체지향 개념 ... 81
생성자 ... 82
언제 생성자를 호출하는가? ... 83
생성자 내부에는 무엇이 있는가? ... 83
기본 생성자 ... 84
다중 생성자 사용 ... 85
생성자 설계 ... 90
오류 처리 ... 91
문제를 무시한다 ... 92
문제를 점검하고 응용 프로그램을 취소한다 ... 92
문제를 점검하고 복구를 시도한다 ... 92
예외 던지기 ... 93
범위의 개념 ... 96
로컬 속성 ... 96
객체 속성 ... 98
클래스 속성 ... 101
연산자 오버로딩 ... 102
다중 상속 ... 104
객체 연산 ... 105
결론 ... 106
참고 도서 ... 107
이 장에 사용된 예제 코드 ... 107
Chapter 4 클래스 해부 ... 109
클래스의 이름 ... 110
주석 ... 112
속성 ... 113
생성자 ... 115
접근자 ... 117
공개 인터페이스 메서드 ... 120
비공개 구현 메서드 ... 120
결론 ... 121
참고 도서 ... 122
이 장에 사용된 예제 코드 ... 122
Chapter 5 클래스 설계 지침 ... 127
현실 세계 시스템 모델링 ... 128
공개 인터페이스 확인 ... 129
최소한의 공개 인터페이스 ... 129
구현 은닉 ... 131
견고한 생성자(또는 소멸자) 설계 ... 131
오류 처리를 클래스 속에 설계 ... 132
클래스 문서 작성 및 주석 사용 ... 133
협력하기 위한 객체 구성 ... 133
재사용을 고려한 설계 ... 134
확장성을 고려하여 설계 ... 134
서술형 이름 사용 ... 1350
이식 불가 코드 추상화 ... 136
객체 복사 및 비교 방법 제공 ... 136
가능한 작은 범위 유지 ... 137
클래스가 스스로 책임지도록 한다 ... 138
유지보수를 고려하여 설계 ... 140
반복 사용 ... 141
인터페이스 테스트 ... 141
객체 지속성 사용 ... 143
객체 직렬화와 마샬링 ... 144
결론 ... 145
참고 도서 ... 146
이 장에 사용된 예제 코드 ... 146
Chapter 6 객체를 사용한 설계 ... 149
설계 지침 ... 150
적합한 분석 수행 ... 154
작업 명세서(SOW) 개발 ... 155
요구 사항 수집 ... 155
사용자 인터페이스 원형 개발 ... 156
클래스 확인 ... 156
각 클래스의 책임 역할 결정 ... 157
클래스가 상호 협업하는 방법 결정 ... 157
시스템을 설명하는 클래스 모델 작성 ... 157
사례 연구: 블랙잭 예제 ... 157
CRC 카드 사용 ... 160
블랙잭 클래스 확인 ... 162
클래스의 책임 역할 확인 ... 165
UML 유스케이스: 협업 확인 ... 172
처음 통과한 CRC 카드 ... 176
UML 클래스 다이어그램: 객체 모델 ... 179
사용자 인터페이스 원형 작성 ... 180
결론 ... 180
참고 도서 ... 181
Chapter 7 상속과 조합 ... 183
객체 재사용 ... 184
상속 ... 185
일반화 및 특수화 ... 189
설계상 결정 ... 190
조합 ... 192
UML을 사용하여 조합 표시 ... 193
캡슐화가 OO의 기본이 되는 이유 ... 196
상속이 캡슐화를 약화시키는 방법 ... 196
다형성에 대한 자세한 예제 ... 199
객체 책임 역할 ... 200
결론 ... 205
참고 도서 ... 206
이 장에 사용된 예제 코드 ... 206
Chapter 8 프레임워크와 재사용: 인터페이스와 추상 클래스를 이용한 설계 ... 211
코드: 재사용할 것인가? 재사용하지 않을 것인가? ... 212
프레임워크란 무엇인가? ... 213
계약이란 무엇인가? ... 215
추상 클래스 ... 216
인터페이스 ... 219
한 곳에 묶기 ... 221
컴파일러 증명 ... 225
계약 체결 ... 226
시스템 플러그인 포인트 ... 229
E-비즈니스 예제 ... 230
E-비즈니스 문제 ... 230
재사용하지 않는 접근 방법 ... 231
E-비즈니스 솔루션 ... 234
UML 객체 모델 ... 234
결론 ... 240
참고 도서 ... 240
이 장에 사용된 예제 코드 ... 241
Chapter 9 객체 구성 ... 247
조합 관계 ... 248
단계별 구성 ... 250
조합의 유형 ... 253
집합 ... 253
연관 ... 255
연관과 집합을 함께 사용하기 ... 256
의존 관계 피하기 ... 256
카디널리티 ... 258
다중 객체 연관 ... 260
선택적 연관 ... 261
하나로 결합하기: 예제 ... 262
결론 ... 264
참고 도서 ... 264
Chapter 10 UML을 이용한 객체 모델 생성 ... 265
UML이란? ... 266
클래스 다이어그램의 구조 ... 267
속성과 메서드 ... 270
속성 ... 270
메서드 ... 270
액세스 표시 ... 271
상속 ... 272
인터페이스 ... 275
조합 ... 276
집합 ... 276
연관 ... 277
카디널리티 ... 280
결론 ... 281
참고 도서 ... 282
Chapter 11 객체와 이식 가능한 데이터: XML ... 283
이식 가능 데이터 ... 284
확장 가능 마크업 언어(XML) ... 286
XML과 HTML ... 287
XML과 객체지향 언어 ... 288
두 회사 간 데이터 공유 ... 290
DTD를 사용하여 문서 유효성 확인 ... 290
DTD를 XML 문서에 통합 ... 293
CSS의 사용 ... 299
결론 ... 302
참고 도서 ... 303
Chapter 12 지속 객체: 직렬화와 관계형 데이터베이스 ... 305
지속 객체 기초 ... 306
객체를 플랫 파일로 저장 ... 308
파일 직렬화 ... 309
다시 살펴보는 구현 및 인터페이스 ... 311
메서드는 어떤가? ... 313
직렬화 과정에서 XML 사용 ... 314
관계형 데이터베이스에 기록 ... 317
관계형 데이터베이스 액세스 ... 319
드라이버 로딩 ... 322
연결 맺기 ... 323
SQL 문 ... 324
결론 ... 328
참고 도서 ... 328
이 장에 사용된 예제 코드 ... 329
Chapter 13 객체와 인터넷 ... 335
분산 컴퓨팅의 발전 ... 336
객체 기반 스크립팅 언어 ... 337
JavaScript 유효성 확인 예제 ... 340
웹 페이지에 있는 객체 ... 344
JavaScript 객체 ... 345
웹 페이지 컨트롤 ... 347
사운드 플레이어 ... 348
동영상 플레이어 ... 349
Flash ... 349
분산 객체와 엔터프라이즈 ... 350
CORBA ... 352
웹 서비스 정의 ... 357
웹 서비스 코드 ... 362
Invoice.cs ... 362
Invoice.vb ... 364
결론 ... 365
참고 도서 ... 365
Chapter 14 객체와 클라이언트/서버 응용 프로그램 ... 367
클라이언트/서버 접근 방법 ... 368
독자 표준 접근 방법 ... 368
직렬화된 객체 코드 ... 369
클라이언트 코드 ... 370
서버 코드 ... 373
독자 표준 클라이언트/서버 예제 실행 ... 375
독자 표준이 아닌 접근 방법 ... 376
객체 정의 코드 ... 377
클라이언트 코드 ... 379
서버 코드 ... 380
독자 표준이 아닌 클라이언트/서버 예제 실행 ... 383
결론 ... 383
참고 도서 ... 384
이 장에 사용된 코드 예제 ... 384
Chapter 15 설계 패턴 ... 389
왜 설계 패턴인가? ... 391
Smalltalk 모델/뷰/컨트롤러 ... 392
설계 패턴의 유형 ... 394
생성 패턴 ... 395
구조 패턴 ... 400
행동 패턴 ... 404
안티패턴 ... 405
결론 ... 407
참고 도서 ... 407
이 장에 사용된 코드 예제 ... 408
찾아보기 ... 416
더보기 닫기