책소개
원리와 개념 중심으로 익히는 객체지향 사고방식! 『객체지향 사고 프로세스』는 객체지향 프로그래밍을 기술뿐 아니라 개념 수준, 더 나아가서는 철학 수준에서부터 다룬다. 또한, 프로그래머들이 객체지향의 탄탄한 이론적 기반을 다지고, 객체지향적으로 생각해나가는 과정을 제시한다. 1999년 초판이 나온 이후 20년에 걸쳐 다양한 내용과 새로운 기술을 보강하여 5판까지 출간된 장수 스테디셀러이다. 자신의 프로그래밍 스킬과 상관없이 객체지향 개념이 딱딱하거나 어렵게 느껴지는 모든 분에게 필요한 책이다.
저자소개
오하이오주 클리블랜드에 있는 Cuyahoga Community College(Tri-C)의 경영 기술 분야 부교수다. 기술위원회 소속 위원으로서 프로그래밍, 웹 개발, 사업 개발 등에 집중하고 있다. Tri-C에 오기 전에는 20년간 정보기술 업계에서 소프트웨어 개발, 프로젝트 관리, 소규모 사업 관리, 사내 교육 및 시간 강사로서 경험을 쌓았다. 또한, 컴퓨터과학 석사(MS)와 프로젝트 관리 분야 경영학 석사(MBA)를 취득하였다. 《The Object-Oriented Thought Process》 이외에도 두 권의 컴퓨터 관련 도서를 집필하였고, informit.com, developer.com, 《Dr. Dobb’s Journal》, 《The C/C++ Users Journal》, 《Software Development Magazine》, 《Java Report》 등의 잡지와 저널 그리고 국제 저널인 《Project Management》에 논문을 기고하였다.
목차
CHAPTER 1 객체지향 개념 소개 1기본 개념 2객체와 레거시 시스템 3객체지향 프로그래밍과 절차적 프로그래밍 4절차적 개발에서 객체지향적 개발로 옮겨 타기 9객체란 정확히 무엇일까? 10클래스란 정확히 무엇을 일컫는 말인가? 16시각화 도구로 클래스 다이어그램 사용하기 20캡슐화 및 데이터 은닉 20상속 25다형성 29합성 33결론 35CHAPTER 2 객체라는 관점에서 생각하는 방법 37인터페이스와 구현부의 차이점 이해 39인터페이스 설계 시 추상적으로 생각해 보기 47가능한 한 사용자 인터페이스를 적게 제공하기 49결론 54참고 문헌 54CHAPTER 3 그 밖의 객체지향 개념들 55생성자에 관하여 55오류 처리 64범위의 중요성 69연산자 오버로딩 75다중 상속 77객체 연산 78결론 80참고문헌 80CHAPTER 4 클래스 해부하기 81클래스의 이름 82속성 84생성자 86접근자 88공개 인터페이스 메서드 91비공개 구현부 메서드 92결론 93참고문헌 93CHAPTER 5 클래스 설계 지침 95현실 세계 시스템 모델링 95공개 인터페이스 식별 97튼튼한 생성자나 소멸자가 되게 설계하기 99클래스에 대한 오류 처리 설계 100재사용을 고려한 설계 102확장성을 고려한 설계 102유지보수를 고려한 설계 106객체 지속성 사용 110결론 111참고문헌 112CHAPTER 6 객체를 사용해 설계하기 113설계 지침 114객체 래퍼 121결론 128참고문헌 129CHAPTER 7 상속과 합성에 익숙해지기 131객체 재사용 132상속 133캡슐화가 객체지향의 기본이 되는 이유 143결론 153참고문헌 154CHAPTER 8 프레임워크 및 재사용: 인터페이스와 추상 클래스를 사용해 설계하기 155코드: 재사용할 것인가, 사용하지 않을 것인가? 155프레임워크란? 156계약이란? 158전자상거래 사례 173결론 182참고문헌 183CHAPTER 9 객체 구축과 객체지향 설계 185단계적으로 구축하기 187합성 유형 190의존체 회피하기 193카디널리티 195종합: 예제 199결론 200참고문헌 200CHAPTER 10 디자인 패턴 201디자인 패턴이 필요한 이유 202스몰토크의 모델/뷰/컨트롤러 204디자인 패턴의 종류 206안티패턴 216결론 218참고문헌 218CHAPTER 11 의존적이거나 경직된 클래스가 되지 않게 하기 221합성 대 상속, 그리고 의존성 주입 224결론 232참고문헌 233CHAPTER 12 객체지향 설계의 SOLID 원칙 235객체지향 설계의 SOLID 원칙 237결론 255참고문헌 255찾아보기 257