티스토리 뷰
반응형
실세계와 객체지향 목표
- 객체지향의 목표는 실세계를 모방한 것이 아니다.
- 새로운 세계를 창조한 것이다.
- 가장 큰 차이는 바로 객체 스스로가 행동을 할 수 있다는 것이다.
- 자동차가 스스로 시동을 걸고, 통장이 스스로 금액을 인출하는 세상. 객체지향의 세상
역할, 책임, 협력
- 객체 지향에서 가장 중요한 개념 세가지
협력
- 하나의 복잡한 문제를 해결할 수 있는 공동체를 형성할 수 있게 만든 것이다.
역할과 책임
- 문제를 해결하기 위해 협력하는 과정 속에서는 각각 특정한 역할을 부여받는다.
- 손님, 바리스타, 캐시어
- 역할을 부여받은 역할자는 자신의 역할을 수행하기 위한 책임을 다 해야 한다.
- 선생님은 학생들을 가르칠 책임이 있다.
역할과 책임은 협력이 원활하게 진행되는데 필요한 핵심적인 구성요소이다. 역할은 책임의 집합이다.
다형성
- 동일한 요청을 받더라도 해당 역할을 수행하는 사람들마다 서로 다른 방식으로 요청을 처리할 수 있다.
- 커피를 만들 때 바리스타마다 향을 진하게, 맛은 덜 쓰게 등 다른 방법으로 만들 수 있다.
캡슐화 맛보기
캡슐화: 객체를 기계로 묘사할 때, 사용자는 기계가 제공해주는 버튼으로만 상태를 확인하고 변경을 요청(행동)할 수 있다. 즉, 사용자는 기계에 직접적인 접근이 불가능하다는 것이다.
객체 지향 설계의 묘미
- 객체를 설계할 때는, 다른 객체와 조화롭게 협력할 수 있을 만큼 충분히 개방적인 동시에 협력에 참여하는 방법을 스스로 결정할 수 있을 만큼 자율적인(요청에 따라 응답하는 절차를 스스로 판단) 객체들의 공동체를 설계해야 한다.
객체의 의사소통
- 객체의 외부에서는 접근이 허락된 수단을 통해서만 객체와 의사소통해야한다.
- 객체는 다른 객체가 무엇을 수행하는 지는 알 수 있어도, 어떻게 수행하는 지는 알 수 없다.
메시지와 메소드
- 객체들은 메시지를 통해서 협력을 하되, 해당 메시지를 처리하는 구체적인 방법을 메소드라고 한다.
- 메시지와 메소드가 분리된 것은 객체의 자율성을 높이는 핵심 메커니즘이며, 캡슐화 개념과도 연관이 되어있다.
반응형
'객체지향' 카테고리의 다른 글
[객체 지향] 객체 지도 (0) | 2020.03.05 |
---|---|
[객체지향] 책임과 메시지 그리고 캡슐화 (0) | 2020.03.03 |
[객체지향] 타입과 추상화 (0) | 2020.02.28 |
[객체지향] 역할, 책임, 협력(2) (0) | 2020.02.26 |
[객체지향] 상태, 행동, 식별자 (0) | 2020.02.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- try with resources
- 자바8
- java8
- 팩토리 메소드 패턴
- ifPresent
- junit
- package-private
- 정적팩터리메서드
- JPA
- 스프링부트
- 인프런
- 이펙티브자바
- Effective Java
- Spring
- try catch finally
- 빌더 패턴
- flatMap
- effectivejava
- 이펙티브 자바
- 김영한
- @Lazy
- springboot
- 복사 팩토리
- 연관관계
- 점층적 생성 패턴
- 빈 순환 참조
- mustache
- 생성자
- java
- jdk버전
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함